SQL基础

定义:sql是结构化查询语言

作用:增删改查;创建表,存储过程,视图;查看表,视图,存储过程

分类:DDL,DML,DCL

DDL是进行数据库的创建删除和修改,一般DBA使用的多一些

创建数据库

如果已经存在

 查询存在那些数据库

 使用数据库(use dbname)

查看数据库中的表

 

删除数据库(drop database 数据库名)

 

 创建表

 查看表结构(desc 表名)

 查看表的创建语句

 删除表:drop table 表名

修改表类型:alter table 表名 modify [COLUMN] column_definition [FIRST | AFTER col_name];

增加表字段:ALTER TABLE 表名 ADD [COLUMN] column_definition [FIRST | AFTER col_name];

删除表字段:ALTER TABLE 表名 CHANGE [COLUMN] old_col_name column_definition [FIRST | AFTER col_name];

修改字段排列顺序:ALTER TABLE 表名  [ADD|MODIFY] col_name column_definition [FIRST | AFTER col_name]

更改表名:alter table 表名 rename [to] 新表名

DML:

插入记录:INSERT INTO tablename(field1,field2,...fieldn) VALUES(value1,value2,...,valuen);

在这里不可以指定列名,values后面的顺序应该和字段的顺序保持一致

可以含有空字段,非空但是含有默认值的字段,可以不在insert后的字段列表中出现,values后面对应字段名称的值

更新记录;update 表名 set field1=value1,field2=value2,...fieldn=valuen [WHERE CONDITION];

查询记录:select * from from 表名 where 限定条件

去重:distinct

条件查询的关键字where,>,<,=,!=,>=,<=,and,or

降序排列:desc

升序排列:asc(也可以直接省略不写)

排序以后只显示一部分:SELECT ... ... [LIMIT offset_start,row_count];

offset_start:起始偏移量

row_count:行数

limit一般和order by一起来进行记录分页显示

在其他数据库不可以使用

聚合:SELECT [field1,field2,...,fieldn] fun_name from tablename     [WHERE where_contition]     [GROUP BY field1,field2,...,fieldn [WITH ROLLUP]]     [HAVING where_contition]

fun_name:聚合函数,有sum,count(*),avg,max,min

group by:分组

with rollup:是否在分类以后对结果进行汇总

having:分类后对结果进行过滤

having和where的区别:having是对聚合后的结果进行过滤,where是对聚合前的结果进行过滤

左连接:包含左表中的全部记录以及右表中没有和他匹配的记录,以左表为基准进行连接(left join)

右连接:包含右表中的所有记录已经左表中没有与之匹配的记录,以右表为基准进行连接(right join)

子查询:in,not in,=,!=,exists,not exists

记录联合:将两个表按照一定的条件查出结果后,进行联合(union、union all)

                  SELECT * FROM t1 UNION|UNION ALL SELECT * FROM t2 ......

                  union和union all的区别是union all是将查询出来的结果直接联合在一起,而union是在

                  联合完成以后进行一个去重操作

创建用户并授权:创建一个数据库用户z1,具有对sakila数据库中所有表的SELECT/INSERT权限: grant select,insert sakila.* to 'z1'@'localhost' identified by '123''; 由于权限变更,需要将z1的权限变更,收回INSERT,只能对数据进行SELECT操作: $ mysql -uroot revoke insert on sakila.* from 'z1'@'localhost'; 重新登录后执行前面的语句: $ mysql -uz1 -p123

contents显示有可供分类:

 data types查看类别名称

 查看int类型的使用

 比较常用的视图:

SCHEMATA:该表提供了当前MySQL实例中所有数据库的信息,show databases的结果取之此表。

TABLES:该表提供了关于数据库中的表的信息(包括视图),详细表述了某个表属于哪个schema、表类型、表引擎、创建时间等信息。show tables from schemaname的结果取之此表。 COLUMNS:该表提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息,show columns from schemaname.tablename的结果取之此表。

STATISTICS:该表提供了关于表索引的信息。show index from schemaname.tablename的结果取之此表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值