SQL语句的分类
-
DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter等
-
DML(Data Manipulation Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert, delete, update等
-
DQL(Data Query Language) 数据查询语言 (掌握)
DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,所以把查询语句的语句称作为DQL语言
-
DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE等
-
TCL(Transaction Control Language) 事务控制语言或TPL事务处理语言
用于控制数据库的事务操作,关键字; COMMIT,SAVEPOINT,ROLLBACK等
-
CCL(Cursor Control Language)指针控制语言(了解)
像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。多用于存储过程中对结果集的处理。
SQL通用语法
-
SQL语句可以单行或多行书写,以分号结尾。
-
可使用空格和缩进来增强语句的可读性。
-
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
SELECT * FROM student; - 3种注释
- 单行注释: -- 注释内容 或 # 注释内容(mysql特有) 多行注释: /* 注释 */
用户管理(DDL)
-- 查看用户
-- select 列名,列名,... from mysql.user;
select host, user, authentication_string from mysql.user;
-- 创建用户
-- create user '用户名'@'ip地址' IDENTIFIED by '密码';
create user 'zs'@'localhost' IDENTIFIED by '123';
-- 修改密码
alter user 'zs'@'localhost' IDENTIFIED by '456';
权限管理(DCL)
-- 用户授权
-- grant 权限码 on 数据库名.表名 to 用户名@主机名
grant all on *.* to 'zs'@'localhost';
-- 查看用户权限
-- show grants for 用户名@主机名;
show grants for 'root'@'%';
-- 取消用户权限
-- REVOKE 权限码 ON 库名.表名 FROM 用户名@主机名;
revoke DELETE on *.* from 'zs'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
数据库操作(DDL)
--创建数据库
-- create database 数据库名称;
-- create database if not EXISTS 数据库名称;
-- create database if not EXISTS 数据库名称 character set 编码;
--查看当前所有数据库
show databases;
--修改数据库字符集
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
-- 删除数据库
DROP DATABASE 数据库名
-- 使用数据库(一般用于命令行下使用)
use 数据库名
数据库表的操作
--创建表
CREATE TABLE [IF NOT EXISTS] 表名 (
字段名 字段类型 [ primary key | unique | not null | auto_increment |
| binary | default 缺省值 | comment 注释语句],
......
) [ ENGINE=InnoDB | DEFAULT CHARSET=utf8 ];
--查看表
--1.查看当前数据库下有哪些表
show tables;
--2.查看表的结构
desc t_user2;
--3.查看建表语句
show create table t_user1;
--删除表
drop table t_user;
--修改表
--1.添加列
--ALTER TABLE 表名 ADD 列名 类型
alter table t_user add address varchar(255);
--2.修改列类型
--ALTER TABLE 表名 MODIFY 列名 新的类型
alter table t_user MODIFY sex char(2);
--3.修改列名
--ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
alter table t_user change name username varchar(255);
--4.删除列
--ALTER TABLE 表名 DROP 列名;
alter table t_user drop address;
--5.修改表名
--RENAME TABLE 表名 TO 新表名;
rename table t_user to t_user1;
--6.修改字符集
--ALTER TABLE 表名 character set 字符集;
alter table t_user1 character set 'UTF8';