Mysql的基本SQl语句

1.DDL 数据定义语言,开发

针对库表对象增删改
	create  	创库创表
	drop		删库删表
	alter	    修改库表属性
案例1:创建一个数据库,需求如下:
1)库名为edu
2)字符集为utf8
CREATE DATABASE edu DEFAULT CHARACTER SET utf8;

帮助方式:
help create database
show create database 库名

案例2:修改edu库的字符集为utf8mb4
ALTER DATABASE edu DEFAULT CHARACTER SET utf8mb4;

案例3:在edu库中,创建一张表,要求如下:
1)表名 student
2)字段及约束如下:
	sn   	序号		整形int				主键  	 非空		
	name	姓名		字符串varchar(20) 			      非空
	age		年龄		整形int						   非空
	gender	性别		enum('m','f')				    非空		默认为'm'

use edu;
CREATE TABLE student
(
sn int primary key not null,
name varchar(20) not null,
age int not null,
gender enum('m','f') not null default 'm'
); 

#通过查询表结构来判断表创建成功
DESC 库名.表名;

案例4:修改student表的属性,需求如下:
1)表名改为stu
ALTER TABLE student RENAME stu;

2)增加一个字段:联系方式tel int not null
#增加一列字段,位置默认最后
ALTER TABLE stu ADD tel int not null;

#在第一列增加字段
ALTER TABLE stu DROP tel;
ALTER TABLE stu ADD tel int not null FIRST;

#在指定列后增加字段(比如在age字段后加)
ALTER TABLE stu DROP tel;
ALTER TABLE stu ADD tel int not null AFTER age;

3)修改姓名的数据类型为char(20)
ALTER TABLE stu MODIFY name char(20) not null;

 

2.DML 数据操作语言,开发

针对表的内容(数据)增删改
	insert 		插入数据行
	delete		删除数据行
	truncate    删除数据行
	update 		更新数据行
案例1:在edu库的stu表中插入数据,如下:
1,张三,20,1391111222,m

方法一:
INSERT INTO stu(sn,name,age,tel,gender) VALUES(1,'张三',20,1391111222,'m');

方法二:
INSERT INTO stu VALUES(1,'张三',20,1391111222,'m');

方法三:
INSERT INTO stu(sn,name,age,tel) VALUES(1,'张三',20,1391111222);

案例2:在edu库的stu表中插入多行数据,如下:
2,李四,22,1301111222,m
3,小芳,19,1801111222,f

INSERT INTO stu VALUES
(2,'李四',22,1301111222,'m'),
(3,'小芳',19,1801111222,'f')
;

案例2:修改stu表的数据,如下:
1)修改小芳的年龄为18岁
2)修改张三的电话号码为1311111222

UPDATE stu SET age=18 WHERE name='小芳';
UPDATE stu SET tel=1311111222 WHERE name='张三';

案例3:删除stu表中数据sn为3的数据信息
DELETE FROM stu WHERE sn=3;

#删除stu表的所有数据
DELETE FROM stu;
DELETE FROM stu WHERE 1=1;

 

3.DCL 数据控制语言,运维

	grant		授权
	revoke		解除授权
GRANT 权限 ON 库名.表名 TO 'user'@'host' IDENTIFIED BY '密码';

注释:
权限:	SQL语句的命令字
		ALL 表示所有权限
		USAGE 表示只能登录的权限
		如果有多个权限,用","隔开

用户名:	在MySQL8.0之前的版本,可以通过GRANT来创建用户并授权
		在MySQL8.0(含)之后的版本,必须先创建用户,再授权
库名表名可以使用"*"通配所有

主机名:"%" 通配any

默认情况下,MySQL只有root@'localhost'用户,意味着root用户只能本地登录
例1:授权root用户可以远程登录
GRANT ALL on *.* TO root@'%' IDENTIFIED BY '123';

例2:授权tanfei用户可以远程登录10.0.0.51,并对edu库具有所有权限
GRANT ALL ON edu.* TO tanfei@'%' IDENTIFIED BY '123';

# 用户tanfei在10.0.0.1登录数据库的时候只能对edu库具有查询权限
GRANT SELECT ON edu.* TO tanfei@'10.0.0.1' IDENTIFIED BY '123';

实例:企业中如何知道一个用户的权限有哪些?
步骤:
1.先查看mysql库的user表,看该用户有哪些客户端主机列表
select user,host from mysql.user where user='用户名';
2.根据查询到的用户名@主机名 来查询该用户的授权
show grants for '用户名'@'主机名';


REVOKE 
REVOKE 权限 ON 库名.表名 FROM 'user'@'host';

4.DQL 数据查询语言,通用

	select		查询数据
	show		查询属性
SELECT 字段名 
FROM 表名 
WHERE 条件1 AND 条件2
ORDER BY 排序
GROUP BY 分类;

5.总结

DDL(针对库表的操作)

1.show tables; #查看表

2.show databases; #查看所有库

3.create database 库名 default character set utf8; #创建字符集为utf8的库

4.create table 表名
(
sn int primary key not null,
name varchar(20) not null,
age int not null,
gender enum('m','f') not null default 'm'
); #创建表以及表结构

5.alter database 库名 default character set utf8mb4; #修改库的字符集为utf8mb4

6.alter table 表名 rename 新表名; #修改表名

7.alter table 表名 add 新字段名 约束 约束 约束; #新增字段名以及约束(加在最后)

8.alter table 表名 drop 字段名; #删除字段

9.alter table 表名 add 新字段名 约束 约束 约束 first; #在第一列增加字段

10.alter table 表名 add 新字段名 约束 约束 约束 after 字段名A; #在字段名A后面添加新字段及约束

11.alter table 表名 modify 字段名A 约束 约束 约束; #修改字段名A的约束

DML(针对数据的操作)

1.insert into 表名(字段,字段,字段,字段,字段) values(值,值,值,值,值);
  insert into 表名 values(值,值,值,值,值);  #往表中增加数据
  
2.insert into 表名 values
(值,值,值,值,值),
(值,值,值,值,值)
; #往表中插入多条数据

3.update 表名 set 字段=值 where 字段=值; #通过where后的条件匹配数据并修改值

4.delete from 表名 where 字段=值; #通过where后的条件匹配数据并删除

5.delete from 表名; 
  delete from 表名 where 1=1; #删除表中的所有数据
  
DCL(授权)
1.grant 权限 on 库名.表名 to '用户名'@'主机名' identified by '密码'; 
#mysql8.0之前使用 创建用户并授权

2.create user '用户名'@'主机名' identified by '密码';
  grant 权限 on 库名.表名 to '用户名'@'主机名'
#mysql8.0(含)之后先创建用户,再授权

3.ALL 表示所有权限 USAGE 表示只能登录的权限

4.库名表名可以使用"*"通配所有

5.主机名:"%" 通配any

6.select user,host from mysql.user where user='用户名'; #查看用户所有的主机

7.show grants for '用户名'@'主机名'; #查看所有特定主机下的用户权限

8.revoke 权限 on 库名.表名 from '用户名'@'主机名'; #取消对应权限

DQL(查询)
1.select 字段名 from 表名 where 条件1 and 条件2 order by 排序 group by 分类;
#从特定的表中查出对应的数据并做出处理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值