MySQL(基础篇)
SQL分类:
数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列 等。关键 字:create,alter,drop等
数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更 新。关键 字:insert,delete,update等
数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别, 及创建用 户
数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字: select, from,where等
SQL通用语法: SQL语句可以单行或多行书写,以分号结尾,可使用空格和缩进来增强语句的可读性,MySQL数据库的SQL语句不区分大小写,关键字建议使用大写 例如:SELECT * FROM user。同样可以使用/**/的方式完成注释 MySQL中的我们常使用的数据类型如下:
类型名称 | 说明 |
int(integer) | 整数类型 |
double | 小数类型 |
decimal(m,d) | 指定整数位与小数位长度的类型 |
date | 日期类型,yyyy-MM-dd,只包含年月日 |
datetime | 日期类型,YYYY-MM-DD HH:MM:SS,包含年月日时分秒 |
timestamp | 日期类型,时间戳 |
varchar(M) | 文本类型,M在0~65535之间 |
基本介绍完后,我们就按照上面的SQL语言分类进行学习。
DDL(Data Definition Language)
一、数据库操作:
1.创建数据库------CREATE DATABASE 数据库名称;
2.使用数据库------USE 数据库名称;
3.查看数据库定义的信息------SHOW CREATE DATABASE 数据库名称;
4.查看所有数据库------SHOW DATABASES;
5.查看正在使用的数据库------SELECT DATABASE();
6.删除数据库------DROP DATABSES 数据库名称;
二、表操作:
1.创建表------CREATE TABLE 表名字(
字段名0 类型(长度) 约束,
字段名1 类型(长度) 约束,
字段名2 类型(长度) 约束
);
约束:PRIMARY KEY 主键,被主键修饰的字段,不能重复,不能NULL
在定义表结构时,作为主键的字段后面 + PRIMARY KEY AUTO_INCREMENT;
不能设置每次增长多少,但是可以设置主键的值从几开始
ALTER TABLE 数据库表名 AUTO_INCREMENT=数据值
2.操作表
查看数据库中所有表------SHOW TABLES;
查看表结构------DESC 表名;
删除表------DROP TABLE 表名;
查看表中所有内容------SELECT * FROM 表名;
查看表的创建信息------SHOW CREATE TABLE 表名;
3.修改表结构
添加列(字段)------ALTER TABLE 表名 ADD `列名` 类型(长度) 约束;
修改列(字段)------ALTER TABLE 表名 MODIFY `列名` 类型(长度) 约束;
修改列名(字段名)------ALTER TABLE 表名 CHANGE `旧名` `新名` 类型(长度) 约束;
删除列(字段)------ALTER TABLE 表名 DROP `名字`;
修改表名------RENAME TABLE `旧表名` TO `新表名`;
修改表的字符集------ALTER TABLE 表名 CHARACTER SET 字符集;
DML(Data Manipulation Language)
一、插入表记录
1.向表中插入某些字段 ------INSERT INTO 表名 (字段1,字段2,字段3..) VALUES (值1,值2,值3..);
2.向表中插入所有字段,字段的顺序为创建表时的顺序------INSERT INTO 表 VALUES (值1,值2,值3..);
注意: 值与字段必须对应,个数相同,类型相同 值的数据大小必须在字段的长度范围内 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号) 如果要插入空值,可以不写字段,或者插入null。
二、更新表记录
1.更新表中所有记录的指定字段------UPDATE 表名 SET 字段名=值,字段名=值,······;
2.更新表中符合条件的指定字段------UPDATE 表名 SET 字段名=值,字段名=值,······ WHERE 条件;
三、删除表记录
1.DELETE FROM 表名 WHERE 条件;
2.TRUNCATE TABLE 表名;
3.DELETE: 删除表的所有数据,会记录id的最大值,再次添加数据时会从id最大值下一位开始
TRUNCATE: 删除表的所有数据,先摧毁整个表结构,重新创建,不会记录id的最大值,id从新开始
四、SQL约束
PRIMARY KEY 约束
唯一标识数据库表中的每条记录。 主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
五、添加主键约束
方式一: 在定义表结构时,作为主键的字段后面+primary key------create table 表名(字段 类型 PRIMARY KEY , 字段 类型 条件约束 );
方式二: 在定义表结构时,已经指定了所有的字段,在最后使用constraint关键字,添加主键约束------create table 表名(字段 类型 条件约束 , 字段 类型 条件约束 , constraint 主键约束名称 primary key(作为主键的字段名) );
方式三: 在定义完表结构后,通过修改表结构方式------alter table 表名 add constraint 主键约束名称 primary key(作为主键的字段名称);
------alter table 表名 add primary key(作为主键的字段名次);
删除主键:------alter table 表名 drop primary key;
六、非空约束
NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。
这意味着,如果不向字段添加值,就无法插入新记录或者 更新记录。
方式一: 定义表结构时,字段名后面+not null
create table 表名(字段 类型 not null 其他约束条件 , 字段 类型 NOT NULL 其他约束条件 ));
方式二: 通过修改表结构的方式 -- 在创建时添加 create table 表名(字段 类型 PRIMARY KEY , 字段 类型 条件约束 );
alter table 表名 modify `字段` 类型(长度) 约束;
七、唯一约束
方式一: 在定义表结构时,作为主键的字段后面+unique
create table 表名(字段 类型 UNIQUE , 字段 类型 条件约束 );
方式二: 在定义表结构时,已经指定了所有的字段,在最后使用constraint关键字,添加唯一约束
create table 表名(
字段 类型 条件约束 ,
字段 类型 条件约束 ,
constraint 唯一约束名称 UNIQUE(添加唯一约束的字段名)
);
create table 表名(
字段 类型 条件约束 ,
字段 类型 条件约束 ,
UNIQUE(添加唯一约束的字段 名)
);
方式三: 在定义完表结构后,通过修改表结构方式
alter table 表名 add constraint 唯一约束名称 UNIQUE(添加唯一约束的字段名);
alter table 表名 add UNIQUE(添加唯一约束的字段名);
删除唯一约束:
如果指定了唯一约束名称,则必须通过唯一约束名称,来删除唯一约束
alter table 表名 drop index 唯一约束名称
如果没有指定唯一约束名称,则必须通过字段名称删除唯一约束
alter table 表名 drop index 字段名;
DQL(Data Query Language)
一、查询表记录:select(查)
查询表中所有数据------SELECT * FROM 表名;
查询表中指定字段的数据------SELECT 列名 FROM 表名;
二、字段名设置别名:
1.select 字段名 as '别名' , 字段名 as '别名' ... from 表名;
2.select 字段名 '别名' , 字段名 '别名' ... from 表名;
3.select 字段名 别名 , 字段名 别名 ... from 表名;
三、设置表别名------select 字段名 as '别名' , 字段名 as '别名' ... from 表名 as 表别名;
四、去掉重复数据------select distinct 字段名 from 表名;
五、运算查询和多次查询------select 字段名,字段名,字段名和运算表达式 from 表名;
六、条件查询------SELECT * FROM 表名 WHERE pname='彭于晏';
SELECT * FROM product WHERE pname LIKE '%彭于晏%';
七、排序查询------SELECT * FROM 表名 ORDER BY 排序字段 ASC 或者 DESC;