MySQL语言的分类
DDL(Data Definition Language):数据定义语言
create(创建),drop(移除),alter(改变 )等对数据库,表,索引的数据对象进行定义
-- 创建数据库/表 CREATE DATABASE/TABLE 数据库名/表名; -- 删除数据库/表 DROP DATABASE/TABLE 数据库名/表名;
- ALTER 用法总结
-- 删除列 ALTER TABLE 【表名字】 DROP 【列名称】; -- 增加列 ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明'; -- 修改列的类型信息 ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL COMMENT '注释说明'; -- 重命名列 ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL COMMENT '注释说明'; -- 重命名表 ALTER TABLE 【表名字】 RENAME 【表新名字】; -- 删除表中主键 Alter TABLE 【表名字】 drop primary key; -- 添加主键 ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid); -- 添加索引 ALTER TABLE sj_resource_charges add index INDEX_NAME (name); -- 添加唯一限制条件索引 ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber); -- 删除索引 alter table tablename drop index emp_name;
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)
insert(添加),一次添加多条
语法:insert into tablename(col_name1,col_name2,....) values (value1,value2..........value_n), (value1,value2..........value_n), (value1,value2..........value_n);
- update(修改)
语法:
update 表名 set 列名1 = 值1,列名2 = 值2 ... 列名n = 值n
delete (删除)
语法:DELETE FROM 表名 [WHERE 从句]
select(查询)
语法:
SELECT 列名1,列名2... FROM 表名
子查询:
子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从mysql4.1开始引入,在SELECT子句中先计算子查询,子查询的结果作为外层另一个查询条件,查询可以基于一个表或者多个表。
例如:
-- FROM 后面括号里的就是子表 a ,该查询结果为 子表a 里的内容 SELECT a.* FROM (SELECT * FROM 表名a) AS a
条件查询:where关键字可以显示用户指定的数据
- 语法:
SELECT 列名 FROM WHERE 逻辑运算条件
- 逻辑运算符:
= ,>, < , >= ,<= ,!= , <> 模糊匹配(LIKE关键字):
例如:-- 查找 student表name列中 含有 “abc”的数据 SELECT name FROM student WHERE name LIKE '%abc%'
- 语法:
- 其它查询:
- 详见—–》MySQL常用查询语句
DCL:数据控制语言:
- 主要是DBA用来管理系统中的对象权限:
-- 创建用户: -- 语法:`CREATE USER 用户名@地址 IDENTIFIED BY ‘密码’;` CREATE USER user1@localhost IDENTIFIED BY ‘123’; CREATE USER user2@’%’ IDENTIFIED BY ‘123’; -- 给用户授权: -- 语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名 GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost; GRANT ALL ON mydb1.* TO user2@localhost; -- 撤销授权: -- 语法:REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名 REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost; -- 查看用户权限 -- 语法:SHOW GRANTS FOR 用户名 SHOW GRANTS FOR user1@localhost; -- 删除用户 -- 语法:DROP USER 用户名 DROP USER user1@localhost; -- 修改用户密码 UPDATE USER SET PASSWORD=PASSWORD('1234') WHERE User='user2' and Host=’localhost’; -- 新建用户远程连接mysql数据库 grant all on *.* to admin@'%' identified by '123456' with grant option; flush privileges; --允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。 --注意admin账户不一定要存在。 -- 支持root用户允许远程连接mysql数据库 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges;