2018.03.10
SQL语句分类:
DDL(Data Definition Language):数据定义语言,关键字 create、alter、drop等
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
DML(Data Manipulation Language):数据操作语言,关键字 insert、delete、update等
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
DCL(Data Control Language):数据控制语言,关键字 grant、revoke、deny等
GRANT - 授权
REVOKE - 撤销授权
DENY - 拒绝授权
TCL(Transaction Control Language):事务控制语言,关键字 commit、rollback等
SAVEPOINT - 设置保存点
ROLLBACK - 回滚
COMMIT - 提交
命令行操作:
开启mysql服务(cmd):net start mysql
关闭mysql服务(cmd):net stop mysql
登录mysql:mysql -u用户名 -p密码 这样就会直接登录
也可以分开写:mysql -u用户名 -p
然后会让输入密码
显示所有数据库:show databases;
查看某个数据库的定义信息:show create database 数据库名;
创建数据库:create database 数据库名;
创建数据库并指定编码:create database 数据库名 character set 字符集;
删除数据库:drop database 数据库名;
使用数据库:use 数据库名;
查看当前正在使用的数据库:select database();
显示所有表:show tables;
查看表结构:desc 表名;
删除表:drop table 表名;
cmd乱码解决方式:set names gbk;(临时修改)
建表:
create table 表名(
列名1 类型 约束,
……
列名n ……
);
约束分类:
主键约束:非空,唯一
唯一约束
非空约束
检查约束
外键约束
插入数据:
insert into 表名(列名1,列名2,……列名n) values(值1,值2,……值n);
insert into 表名 values(所有列对应的值,用逗号分隔);
批量插入数据:
insert into 表名(列名1,列名2,……列名n) values(值1,值2,……值n),(值1,值2,……值n);
修改数据:
update 表名 set 列1=值1,列n=值n where 条件;
删除数据:
delete from 表名 where 条件;(delete是一条一条的删除数据,不删除表结构)
truncate table 表名;(这个是删除表结构,主键如果自增,会重新开始计数)
普通查询:
select * from 表名;
select 列名1,列名n from 表名;
select distinct 字段 from 表名;(去掉重复数据)
条件查询
select * from 表名 where 条件;
排序查询
select * from 表名 order by 列名 [desc][asc];(desc 降序排列,asc 升序排列)
select * from 表名 order by 列名 [desc][asc];
聚合函数:
count、sum、max、min、avg 等等
分组查询
group by 列名
必须跟随聚合函数
被分组的列必须出现在 select关键字后面
分组后过滤:having
修改表
添加列:
alter table 表名 add 列名 类型(长度) 约束;
修改列,类型、添加约束:
alter table 表名 modify 列名 类型(长度) 约束;
修改列名:
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
删除列:
alter table 表名 drop 列名;
修改表名:
rename table 表名 to 新表名;
修改表的字符集:
alter table 表名 character set 字符集;
SQL语句分类:
DDL(Data Definition Language):数据定义语言,关键字 create、alter、drop等
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
DML(Data Manipulation Language):数据操作语言,关键字 insert、delete、update等
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
DCL(Data Control Language):数据控制语言,关键字 grant、revoke、deny等
GRANT - 授权
REVOKE - 撤销授权
DENY - 拒绝授权
TCL(Transaction Control Language):事务控制语言,关键字 commit、rollback等
SAVEPOINT - 设置保存点
ROLLBACK - 回滚
COMMIT - 提交
命令行操作:
开启mysql服务(cmd):net start mysql
关闭mysql服务(cmd):net stop mysql
登录mysql:mysql -u用户名 -p密码 这样就会直接登录
也可以分开写:mysql -u用户名 -p
然后会让输入密码
显示所有数据库:show databases;
查看某个数据库的定义信息:show create database 数据库名;
创建数据库:create database 数据库名;
创建数据库并指定编码:create database 数据库名 character set 字符集;
删除数据库:drop database 数据库名;
使用数据库:use 数据库名;
查看当前正在使用的数据库:select database();
显示所有表:show tables;
查看表结构:desc 表名;
删除表:drop table 表名;
cmd乱码解决方式:set names gbk;(临时修改)
建表:
create table 表名(
列名1 类型 约束,
……
列名n ……
);
约束分类:
主键约束:非空,唯一
唯一约束
非空约束
检查约束
外键约束
插入数据:
insert into 表名(列名1,列名2,……列名n) values(值1,值2,……值n);
insert into 表名 values(所有列对应的值,用逗号分隔);
批量插入数据:
insert into 表名(列名1,列名2,……列名n) values(值1,值2,……值n),(值1,值2,……值n);
修改数据:
update 表名 set 列1=值1,列n=值n where 条件;
删除数据:
delete from 表名 where 条件;(delete是一条一条的删除数据,不删除表结构)
truncate table 表名;(这个是删除表结构,主键如果自增,会重新开始计数)
普通查询:
select * from 表名;
select 列名1,列名n from 表名;
select distinct 字段 from 表名;(去掉重复数据)
条件查询
select * from 表名 where 条件;
排序查询
select * from 表名 order by 列名 [desc][asc];(desc 降序排列,asc 升序排列)
select * from 表名 order by 列名 [desc][asc];
聚合函数:
count、sum、max、min、avg 等等
分组查询
group by 列名
必须跟随聚合函数
被分组的列必须出现在 select关键字后面
分组后过滤:having
修改表
添加列:
alter table 表名 add 列名 类型(长度) 约束;
修改列,类型、添加约束:
alter table 表名 modify 列名 类型(长度) 约束;
修改列名:
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
删除列:
alter table 表名 drop 列名;
修改表名:
rename table 表名 to 新表名;
修改表的字符集:
alter table 表名 character set 字符集;