zoukankan      html  css  js  c++  java
  • MySQL系列-----初始

    基本的增删改查

    数据库的命名规则:
     1.可以由数字、字母、下划线、@、#、$
     2.区分大小写(里面的sql语句可以)
     3.唯一性
     4.不能使用关键字如 create select
     5.不能单独使用数字
     6.最长128位
    
    设置默认:character_set_server=utf8
    
    
    数据库增删查改
    增:也就是创建 create database db1
    
    
    
    
    操作文件夹(库)
    增
       create database db1  charset utf8;
    改
        alter database db1 charset gbk;
    查
      show databases;
      show create database db1;
    删
       drop database db1;
    
    
    
    操作文件(表)
    >>use db1切换到文件夹下
    增
      create table t1(id int,name char10))engine=innodb;
    删
      drop table t1;
    改
      alter table t1 add age int,sex male;  增加字段
      alter table t1 modify name char(12); 修改长度
    查
       show tables;
       show create table t1;
       describe t1 查看表结构
    
    
    
    
    操作文件的一行行内容(记录)
    
    增
       insert into t1 values(1,'egon'),(2,'egon2'),(3,'egon3');#默认的按位置一个一个传
       insert into t1(name) values('egon'),('egon2'),('egon3');  t1(name)只传名字
    
    
    删
      delete from t1 全部删除
      delete from t1 where id=4; #删除id为4的那一行
      truncate t1; 全部删除了,当数据量比较大时用这种删除速度快
    
    改
      update t1 set name='sb' where id=4;
    查
      select * from t1;查看所有
      select name from t1;
      select name,id from t1;
    default charset utf8;t
    
    
    自增id
    create table t1(id int primary key,name char(10)); #主键,不为空且唯一
    create table t3(id int not null unique,name char(10));
    create table t5(id int primary key auto_increment,name char(10));就可以只传名字然后id自加了
    insert into t5(name) values
    ('egon1'),
    ('egon2'),
    ('egon3'),
    ('egon4'),
    ('egon5'),
    ('egon6'),
    ('egon7'),
    ('egon8'),
    ('egon9'),
    ('egon10'),
    
    查看:select * from t5
    查看大于10的 select * from t5 id>5;
    查看大于4小于9的 select * from t5 where id>4 and id<9;
    
    id 唯一且不为空
    select * from t5 where name='egon5';
    
    
    delete 删除完以后再想添加就是从之前的序号往后
    truncate 全部删除,直接清空了,再添加就从头开始了
    
    拷贝表
       create table t6 select * from t5;  只拷贝了数据
    
       create table t7 select * from t5 where 3=2;  只拷贝表结构
    
    
    
    改表用 alter
     alter table t7 modify id int primary key auto_increment;
     insert into t7(name) values
    ('egon1'),
    ('egon2'),
    ('egon3'),
    ('egon4'),
    ('egon5'),
    ('egon6'),
    ('egon7'),
    ('egon8'),
    ('egon9'),
    ('egon10'),
    ('egon11'),
    ('egon12'),
    ('egon13');
    
    
    想要用delete删除1后面的egon是做不到的,因为他删的是一条记录
    
    改表内容用update
    update改的是字段
      想要改掉所有的名字 update t7 set name='';
    
    
    权限管理 用户对库、表、表里字段的管理权限
    级别1:针对所有的库
    级别2:

    存储引擎

    mysql中建立的库===>文件夹
    
    库中建立的表===>文件
    
    现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用png等
    
    数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。
    存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法
    因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和
    操作此表的类型)
    
    二 mysql支持的存储引擎
    
    MariaDB [(none)]> show enginesG  #查看所有支持的存储引擎
    MariaDB [(none)]> show variables like 'storage_engine%'; #查看正在使用的存储引擎
    
    三 使用存储引擎
    
    方法1:建表时指定
    
    MariaDB [db1]> create table innodb_t1(id int,name char)engine=innodb;
    MariaDB [db1]> create table innodb_t2(id int)engine=innodb;
    MariaDB [db1]> show create table innodb_t1;
    MariaDB [db1]> show create table innodb_t2;
    
    方法2:在配置文件中指定默认的存储引擎
    
    /etc/my.cnf
    [mysqld]
    default-storage-engine=INNODB
    innodb_file_per_table=1
    
    [root@egon db1]# cd /var/lib/mysql/db1/
    [root@egon db1]# ls
    db.opt  innodb_t1.frm  innodb_t1.ibd  innodb_t2.frm  innodb_t2.ibd
    
    练习
    
    创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试
    
    复制代码
    MariaDB [db1]> create table t1(id int)engine=innodb;
    MariaDB [db1]> create table t2(id int)engine=myisam;
    MariaDB [db1]> create table t3(id int)engine=memory;
    MariaDB [db1]> create table t4(id int)engine=blackhole;
    MariaDB [db1]> quit
    [root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
    db.opt  t1.frm  t1.ibd  t2.MYD  t2.MYI  t2.frm  t3.frm  t4.frm
    
    #memory,在重启mysql或者重启机器后,表内数据清空
    #blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

    权限问题

    #创建用户
    create user 'lin'@'localhost' identified by '123';
    
    #insert,delele,update,select
    #级别1:对所有库,下的所有表,下的所有字段
    grant select on *.* to 'lin1'@'localhost' identified by '123';
    
    #级别2:对db1库,下的所有表,下的所有字段
    grant select on db1.* to 'lin2'@'localhost' identified by '123';
    
    #级别3:对表db1.t1,下的所有字段
    grant select on db1.t1 to 'lin3'@'localhost' identified by '123';
    
    #级别4:对表db1.t1,下的id,name字段
    grant select (id,name) on db1.t1 to 'lin4'@'localhost' identified by '123';
    grant select (id,name),update (name) on db1.t1 to 'lin5'@'localhost' identified by '123';
    
    #修改完权限后,要记得刷新权限
    flush privileges;
    
    回收权限
    revoke select on *.* from 'lin1'@'localhost';
  • 相关阅读:
    ElasticSearch应用之数据埋点——认识埋点
    WebStorm好用的插件推荐
    mysql身份验证问题
    (一) MySql的安装
    (一)Mongodb的下载与安装
    解决Flask中 request.get_json()接收不到传来的json数据
    docker查看日志记录
    微信小程序右上角胶囊的信息
    linux shell 字符串操作(长度,查找,替换)详解
    Win7下的内置FTP组件的设置详解
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/7510273.html
Copyright © 2011-2022 走看看