SQL语句总结

SQL语句总结

SQL语言

  1. DML(Data Manipulation Language)数据操纵语言 如SELECT、UPDATE、INSERT、DELETE

  2. DDL(Data Definition Language)数据库定义语言 如CREATE、ALTER、DROP

  3. DQL(Data Manipulation Language)数据查询语言 如SELECT子句,FROM子句,WHERE

  4. DCL(Data Control Language)数据库控制语言 如rant,deny,revoke

一般实际操作不经常用DCL

一、创建

  • 创建数据库

    create database etcchina;
    use etcchina;

  • 创建表

    例如:
    create table etc1 (id int primary key,name varchar(20) not null,sex varchar(2) not null,age int not null,address varchar(20) not null,phone int);

  • 查看表的定义

    desc 表名字;
    desc 库名.表名;

  • 查看更详细的信息

    show create table 库名.表名\G;

二、修改

  • 修改字段名称

    alter table 表名 change 老字段名称 新字段名称 字段类型(约束条件);
    例如:alter table etc1 change phone phone_number int;
    注意:modify和change都能改变字段的类型,但是change能改变字段的名称,modify不能。

  • 在表中插入字段

    alter table 表名 add column 新增的字段名称 字段类型(约束条件);
    column可以省略不写,这样插入默认是在最后一行的。
    例如:alter table etc1 add time datetime not null;

  • 按照字段排列顺序增加

    alter table 表名 add 新增字段 字段类型 after 字段(排在谁的后边写谁)
    注意:这种方式添加不能同时添加约束条件

  • 对于已有的字段进行排序,

    alter table 表名 modify 已有字段 字段类型 位置
    例子:
    alter table etc1 modify name varchar(20) first; 把name字段放到首行
    alter table etc1 modify time datetime after age; 把datetime字段放到age字段后面

  • 在表中删除字段

    alter table 表名 drop column 字段名称;
    colunm可以省略

  • 修改表名

    alter table 表名 rename 新表名;
    例子:alter table etc1 rename etc_1;

三、插入

  • 三种方法

    insert into 表名(字段1,字段2,字段3,…字段n) values(‘内容1’,‘内容2’…);
    insert into 表名 values(‘内容1’,‘内容2’…);
    insert into 表名 values (‘内容1’,‘内容2’…),(‘内容1’,‘内容2’…);
    例子:insert into etc_1 values (‘张冰晗’,001,‘女’,15,‘2014-02-24’,‘河南’,23456478);
    注意:如果按后两种方法插入,values后边的顺序必须与字段的顺序一样,否则报错

  • 更新记录(更改内容)

    update 表名 set 字段=修改的内容 where 字段=‘修改谁的’;
    例子:update etc_1 set age=18 where name=‘张冰晗’;

  • 删除记录

    delete form 表名 where 字段=‘删除的内容’
    例子:delete from etc_1 where age=18;

四、查询

  • 查询

    select * from etc_1 limit 3; 查看数据表的前3行
    select * from etc_1 limit 1,10; 从第1行到第10行
    select * from etc_1 order by age; 按正顺序排序
    select * from etc_1 order by age desc; 倒叙查看
    select count(*) from etc_1; 查看有多少行
    select count(name) from abc;

  • 子查询:

    select * from etc_1 where age=(select max(age) from etc_1); 最大 (min最小 sun求和 avg平均)
    select max(age) from etc_1;
    select name,age from etc_1; 多项定义查询
    select * from etc_1 where sex=‘女’ and age =15; 精确查询 (and可以换成&&) &&
    select * from etc_1 where age between 18 and 20; 查询一个范围的
    select distinct age from etc_1; 去掉重复的
    按条件查找,可匹配正则 % 代表任意一个字符 _代表一个字符*
    select * from etc_1 where name like ‘%冰%’; 按条件查询

五、备份还原

  • 备份

    mysqldumpmysqldump -uroot -p etcchina etc_1 > etc_1_backup.sql
    备份表etc_1到etc_1_backup.sql
    mysqldump -uroot -p --databases etcchina > etcchina_backup.sql
    备份数据库etcchina到etcchina_backup.sql
    mysqldump -uroot -p --all-databases > database_backup.sql
    备份所有数据库到database_backup.sql

  • 还原

  • mysql> create database etcchina; 需要重新创建数据库database
    mysql -uroot -p etcchina < etcchina_backup.sql
    恢复数据库etcchina

六、授权

  • 授权

    grant all on etcchina.* to mysql@‘192.168.17.%’ identified by ‘Dacheng@2019’;
    flush privileges;
    grant 要给的权限 on 要授权的数据库 to 用户@‘localhost’ identified by ‘密码’;

  • 查看授权

    show grants; 查看当前用户权限
    show grants for mysql@‘192.168.17.%’; 查看其它用户权限

  • 撤销已经给予的权限

    revoke all on etcchina.* from mysql@‘192.168.17.%’;

  • 删除授权的用户

    drop user mysql@‘192.168.17.%’;
    [root@localhost ~]# id myslq
    id: myslq: no such user
    未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值