Mysql笔记

Mysq数据库

连接数据库  cmd 进入mysql server的bin 文件夹下面

mysql -u用户名 -p密码 密码可以不填 然后直接输入

创建数据库 create database 数据库名;  

切换数据库  use 数据库名; 切换回主目录  use mysql;

显示数据库 show databases;  显示数据库下的表 show tables;

删除数据库 drop database 数据库名;

数据库表的操作

DDL 数据定义

desc 表名; 查看表定义

显示更详细的信息 show create table 表名 \G;

删除表 drop table  表名

修改表

修改字段 alter table 表名 modify [column] 字段 数据类型 [first/after col_name];

添加字段                           add

删除字段                            drop

first 表示添加在表的第一个字段之前

after col_name 表示指定添加在col_name字段之后

修改字段名  alter table 表名 change [column] old_column new_column_definition [first/after col_name];

modify change 都可以修改字段类型 change需要写两次 但是可以修改列名称

             modify  修改字段类型

修改表名字

alter table 表名 rename [TO] 新表名

DML 数据操作语句
插入数据

1.insert into 表名(field1,field2...fieldn)  values (value1,value2...valuesn);

2.insert into emp  values ('lisa','2-15-02-01','3000','2');

3.可为空字段 自增字段可以不insert

    insert into emp (field2,field4) values (value2,value4);

一次性插入多条记录

insert into tablename (field1,field2... fieldn) values

(value1-1,value1-2...value1-n),

(value2-1,value2-2...value2-n),

(value3-1,value3-2...value3-n);

逗号分隔,最后用分号,可以插入大量的数据 网络开销

更新数据

update tablename set field1=value1,field2=value2,... 

where 

MySQL 可以同时更新多个表中的数据

update t1,t2,...tn set t1.field1=value1,tn.fieldn=valuen

where ....

多表更新的语法用在根据一个表的字段 动态更新另外一个表的总段

删除数据

delete from tablename where

一次删除多个表

delete t1,t2...tn from t1,t2...tn where 

delete a,b from emp a,dept b 

where a.deptno=b.deptno and a.deptno=3

where条件不加会删除所有记录 要小心

查询

 limit关键字

select ....[limit offset_start,row_count]

offset_start  记录的起始偏移量  默认起始偏移量为0

row_count 显示的行数

limit 经常和order by 一起配置使用来进行分页的显示

聚合

汇总操作

select  [field1,field2,...fieldn] fun_name

from tablename

[where]

[group by]  进行分类聚合的字段

[with rollup]   分类聚合后的结果再汇总

[having]   过滤

fun_name 聚合函数  sum/count(*)/max/min

select deptno,count(1) from emp group by deptno;

统计各部门的人数 又要统计总人数

select deptno,count(1) from emp group by deotno with rollup;

条件过滤

having count(1)>?

子查询

in/not ni   =  !=  exists not exists等

select * from emp where deptno in (select deptno from dept);

记录联合

union /union all

union  all 是把结果直接合并在一起

union  是将union all 后的结果进行一次distinct 去重复记录

DCL CONTROL  管理系统中的对象权限

授予权限

grant select,insert on sakila.*  to 'zl'@‘localhost’ identified by '123';

收回权限

revoke select,insert  on sakila.* from 'zl' @'localhost';



你可能感兴趣的:(Mysql笔记)