黑马程序员技术交流社区

标题: 【上海校区】MYSQL语句总结 [打印本页]

作者: 偷树的光头强    时间: 2018-9-13 11:25
标题: 【上海校区】MYSQL语句总结
一:数据库语句
1、查询当前所有的数据库: show databases;
2、查看当前数据库的创建方式:查看数据库的编码表: show create database 库名;
3、创建数据库的语法: create database 数据库名;
4、创建数据库的语法: create database 数据库名 character set 编码表名;(注意:如果创建数据库指定的编码表是utf8,记住不能写utf-8.。utf-8 mysql不认识)
5、删除数据库的语法: drop database 数据库名;
6、修改数据库的编码集: alter database 数据库名称 character set 字符集;
7、切换数据库: use 数据库名;
8、查询当前正在使用的数据库: select database();
二:数据表结构的增删改查
1、创建数据库表的语法:
create table 表名(
列名 类型(长度), ----某一列,存放的数据是什么类型.长度表示允许列名存储数据的最大长度.
列名 类型(长度),
..........................
列名 类型(长度)  ---最后一个列不需要逗号。
);
2、查看该数据库的所有的表: show tables;

3、查看表的列的信息(查看表结构): desc 表名;
三:单表创建约束
1、主键约束: primary key
2、自增长: auto_increment
3、唯一约束: unique
4、非空约束: not null
示例:
create table 表名(
        id int primary key auto_increment,
        name varchar(20) unique,
        age int not null,
        …………
);
5、外键约束: foreign key( 当前表中的列名 )  references 被引用表名(被引用表的列名);
        注意:一般在开发中,被引用表的列名都是被引用表中的主键。
四:数据表结构修改
1、增加列语法: alter table 表名 add 列名 类型(长度) 约束;
2、修改现有列类型、长度和约束: alter table 表名 modify 列名 类型(长度) 约束;
3、修改现有列名称: alter table 表名 change 旧列名 新列名 类型(长度) 约束;
4、删除现有列: alter table 表名 drop 列名 ;
5、修改表名: rename table 旧表名 to 新表名;

6、修改表的字符集: alter table 表名 character set 编码集;
五:数据表内容的增删改
1、insert语句----向数据表插入数据
方式一:insert into 表名 (列名1,列名2,列名3......) values (值1,值2,值3......);
方式二:insert into 表名 values (值1,值2,值3......);
2、update语句----数据内容修改操作
update 表名 set 列名=值,列名=值..... where条件语句;
3、delete语句----删除表中数据的语句
delete from 表名 where条件语句
4、truncate 语句----删除数据
truncate table 表名:


***注意:truncate与delete的区别:
1.delete
DML语言
数据还可以找回来,恢复回来
可以有条件的删除。DELETE FROM 表名 WHERE 条件
2.truncate table
DDL语言
数据不可以恢复
先将整个表删除,再重新创建
删除速度比delete快。


***注意:delete与drop的区别:
1.delete
把表中的所有数据全部删除,但是表还存在。还可以向表中继续添加数据。
2.drop
把表从数据库中删除。表已经不存在,不能再向表中添加数据。
六:SQl中的聚合函数
        count(数目) : 统计个数(行数),统计有多少行,或者有多少条数据。
        sum(和)函数:求和。
        avg(均值)函数:求平均值。
        max(最大值):求最大值。
        min(最小值):求最小值。
1、count函数--统计记录数(统计行数): select count(*)或者count(具体列名) from 表名;
        注意: 1.count(具体列名):在根据指定的列统计的时候,如果这一列中有null的行,该行不会被统计在其中。按照列去统计有多少行数据。
                   2、 select count(列名) from 表名; 按具体列来进行统计行数。
                         select count(*) from 表名;  统计表中的行数。
2、sum函数: select sum(列名) ,sum(列名) ,......from 表名;
3、truncate截取函数: truncate(列名, 截取的小数位) 表示截取的意思,保留几位小数。
4、avg函数: select avg(列名) from 表名;

5、max,min函数: select max(列名),min(列名) from 表名;
七:查询总结
from 表名
where 条件:
          逻辑运算符:and or not
          比较运算符:< > <= >= <> =
          在....之间:between...and...
          in():任意的一个条件成立即可
          is null/is not null
          模糊匹配:like % _          
group by 列:对列进行分组。
having 条件:
          逻辑运算符:and or not
          比较运算符:< > <= >= <> =
          在....之间:between...and...
          int(set)
          is null/is not null
          模糊匹配:like % _
          聚合函数(sum,avg,max,min,count)          
order by desc(降序)/asc(升序,默认)


作者: yuchengmin    时间: 2018-9-13 15:34
很不错,受教了
作者: 不二晨    时间: 2018-9-13 16:05

很不错,受教了
作者: striveAcmen    时间: 2018-9-16 13:51
感觉你和我是同期的
作者: 不二晨    时间: 2018-9-20 17:22
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2