RDBMS= 管理员(manager)+仓库(database)
database = N个table
table:
- 表结构:定义表的列名和列类型
- 表记录:一行一行的记录
SQL语言概述
1、SQL是什么,结构话查询语言(Structured Query language)
2、SQL的作用,客户端使用SQL来操作服务器。
3、SQL的标准,由国际标准化组织(ISO)制定的,对DBMS的统一操作方式。
SQL语法
1、SQL语句可以单行或者多行书写,以分号结束。
2、可以使用空格或者缩进来增强语句的可读性。
3、Mysql不区分大小写,关键字建议使用大写。
SQL语句的分类
1、DDL(Data Definition Language)数据定义语言,用来定义数据库对象,库、表、列等。
创建、删除、修改库、表结构。
2、DML(Data Manipulation language)数据操作语言,用来定义数据库的记录(数据);
增、删、改表记录。
3、DCL(Data Control language)数据控制语言,用来定义访问权限和安全级别。
4、DQL(Data Query language)数据查询语言,用来查询记录。
DDL
1、数据库
查看所有的数据库:SHOW DATAbaseS
切换(选择要操作的)数据库:USE 数据库名
创建数据库:CREATE DATAbase[IF NOT EXISTS mydb1[ CHARSET=UTF8]
删除数据库:DROP DATAbase[IF EXISTS] mydb1
修改数据库:ALTER DATAbase mydb1 CHARACTER SET utf8
2、数据类型(列类型)
int:整型
double:浮点型,例如double(4,2)意思就是最多4位,其中两位必须是小数。
decimal:浮点型,在表单前使用该类型,因为不会出现精度缺失问题。
char:固定长度字符串类型,char
varchar:可变长度字符串类型;
text(clob):字符串类型;
data:日期类型,格式为yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型;
3.表
创建表
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
...
列名 列类型
);
查看当前数据库中的所有表名称:SHOW TABLES;
查看指定表的创建语句:SHOW CREATE TABLE 表名;
查看表的结构:DESC 表名;
删除表:DROP TABLE 表名
修改表:前缀:ALTER TABLE 表名
添加列:ALTER TABLE 表名 ADD(列名 列类型);
修改列类型:ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
修改之删除列::ALTER TABLE 表名 DROP 列名;
修改表名称::ALTER TABLE 原表名 RENAME TO 新表名;
DQL:SELECT * FROM 表名
DML(数据操作语言,他是对表记录的操作,增、删、改)
1、插入数据
INTERT INTO 表名(列名1,列名2,...) VALUES;
表名是要插入的列名,
没有给出要插入的列,那么表示插入所有列。
2、修改数据
UPDATE 表名 SET 列名1=列值1,列名2=列值2,...
条件(可选)
条件必须是一个boo;ean类型的值或者表达式
3、删除数据
DELETE FROM 表名 (WHERE 条件);
TRUNCATE TABLE 表名:TRUNCATE 是DDL语句,他是先删除drop该表,再create该表,无法回滚。
DCL
1、创建用户
CREATE USER 用户名@IP地址 IDENTIFIED BY '密码';
用户只能在指定的IP地址上登录
CREATE USER 用户名@'%' IDENTIFIED BY'密码';
用户可以在任意IP地址登录
2、给用户授权
GRANT 权限1,...,权限n ON 数据库.* TO 用户名@IP地址
权限、用户、数据库
给用户分派在指定的数据库上的指定权限
3、撤销授权
REVOKE 权限1,...,权限n ON 数据库.* FROM 用户名@IP地址 ;
撤销指定用户在指定数据库上的指定权限
4、查看权限
SHOW GRANTS FOR 用户名@IP地址
查看指定用户的权限
5、删除用户
DROP USER 用户名@IP地址
DQL——数据查询语言(查询不会修改数据库记录)
一、基本查询
1、字段(列)控制
查询所有列
SELECT * FROM 表名
其中的*代表所有列
查询指定列
SELECT * 列1[,列2,……列n] FROM 表名;
完全重复的记录只显示一次
SELECT DISTINCT * 列1[,列2,……列n] FROM 表名;
列运算
数量类型可以加减乘除
字符串类型可以连续运算
转换NULL值,有时候需要将NULL值转化为其他值
给列起名,AS
2、条件控制
条件查询SELECT语句可以使用WHERE子句来控制记录。
模糊查询,LIKE,其中匹配任意一个字符
其中%匹配0~n个任意字符,
3、排序
升序 ORDER BY ASC
降序 ORDER BY DESC
可以使用多列做为排序条件
4、聚合函数
COUNT,计算表中的记录的数量
MAX,计算最大值
MIN,计算最小值
SUM,数据求和
AVG,计算平均工资