####SQL。
-
SQL全称是“结构化查询语言(Structured Query Language)”,是快速帮我们查找操作数据库的语句。
####SQL 支持下列类别的命令。
#####数据定义语言DDL:创建数据库,表,修改数据库,表结构的相关语法,包含删除。
1、用来定义表的数据定义语言命令有:
CREATE TABLE(创建表)
*语法:
CREATE TABLE [IF NOT EXISTS] table_name
(
列名 数据类型 列级约束,
……,
表级约束
);*创建表时,需要指定下列内容: 1、唯一的表名称; 2、表内唯一的列名称; 3、列的数据类型及其宽度;
2、数据类型。
(1)字符数据类型CHAR[(M)] 一个定长字符串,M的取值范围是0-255. 当CHAR值被存储时,他们被用空格在右边填补到指定的长度。当CHAR值被检索时,拖后的空格被删去。 VARCHAR(M) 一个变长字符串,必须指指定M值。长度可以指定为0到65,535之间的值 ENUM('value1','value2',...) 枚举:列只能赋值为某个枚举成员或NULL。1或2个字节,取决于枚举值的个数(最多65,535个值) SET('value1','value2',...) 集合:列可以赋值为多个集合成员或NULL。1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)
(2)数字数据类型
INT、INTEGER 一个正常大小整数,4个字节DOUBLE DOUBLE PRECISION REAL 一个正常大小(双精密)浮点数字,近似值 DECIMAL(或简写为DEC) NUMERIC 一个精确的浮点数字
(3)日期时间类型
DATE 一个日期,以'YYYY-MM-DD'格式来显示,范围是'1000-01-01'到 '9999-12-31',3个字节。 TIME 一个时间,以' HH:MM:SS'格式来显示,TIME值的范围可以从'-838:59:59'到'838:59:59'。小时部分会因此大的原因是TIME类型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个事件过去的时间或两个事件之间的时间间隔(可以大于24小时,或者甚至为负)。3个字节。 DATETIME 一个日期和时间组合,以'YYYY-MM-DD HH:MM:SS'格式来显示,取值范围:“1000-01-01 00:00:00”到“9999-12-31 23:59:59”,8个字节。 TIMESTAMP 一个时间戳,基本上与DATETIME差不多(包括精度),但是在建时间戳类型的列上会自动添加默认值为CURRENT_TIMESTAMP,而且在更新行时自动用当前时间更新时间戳类型的列。 取值范围:“19700101000000”到2037年的某个时刻。存储需求:4字节 YEAR 以YYYY格式检索和显示YEAR值。范围是1901到2155. 1个字节。插入值时可以是:4位字符串、2位字符串、4位数字、2位数字。1到69和70到99范围的值被转换为2001到2069和1970到1999范围的YEAR值
(4)布尔数据类型
BOOLEAN或简写为BOOL 0表示假,非0值表示真,一般用1表示
3、自增列。
对于整数类型的列,可以使用关键字auto_increment将该列定义成自动增长列。
注意:
该列必须索引,一般将其定义成主键列
一个表只能有一个自增列
不为自增列赋值,或赋值为NULL,该列将自增;如果显式地为该列赋值,则使用显式插入的值,且再使用自增功能时接着显式值自增。
得到最后一次插入的值:last_insert_id()
ALTER TABLE(更改表)
1、添加一列:alter table t1 add column c2 int; (column关键字可以省略)
2、修改某列:alter table t1 modify c2 smallint;
3、删除一列:alter table t1 drop column c2;(column关键字可以省略)
4、alter table t1 change 旧列名 新列名 数据类型;(提示:数据类型可改可不改)
DROP TABLE(删除表)
drop table [if exists] 表名;
查看表:show tables [LIKE ‘pattern’] [from dbname];
####数据操纵语言DML:数据库增删查改(CRUD),主要有四种。
1、 insert
(1)INSERT INTO table[(column [,column…])]
VALUES (value[,value…]);
数字类型的值不需要用单引号引起来
字符和日期类型数据需要用单引号引起来
输入值的顺序必须与在表中定义的顺序或者在表名后列出的列的顺序相同
(2)允许使用一条INSERT语句插入多行值:
insert into t1 values (4,'abc'),(5,'def'),(6,’dfsa’);
insert into worker (name)
values (‘tom’), (‘paul’);
2、 delete
(1)DELETE FROM table
[WHERE condition];
示例:delete from t_stu where stuName='李四';
(2)truncate 全部删除。
3、 update
UPDATE table
SET column = value [,column = value,…]
[WHERE condition ] ;
示例:
UPDATE table
SET column = value [,column = value,…]
[WHERE condition ] ;
4、 select
显示表中所有内容:SELECT * FROM table_name
####事务控制语言TCL:事务管理,事务的提交和回滚。
- ACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。一个很好的事务处理系统,必须具备这些标准特性:
-
1、原子性(atomicity)
一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性 -
2、一致性(consistency)
数据库总是从一个一致性的状态转换到另一个一致性的状态。 -
3、隔离性(isolation)
通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。 -
4、持久性(durability)
一旦事务提交,则其所做的修改不会永久保存到数据库。begin;//事务的开启
操作1;
操作2;
操作3;
。。。
操作成功 commit 提交
操作失败 rollback 回滚
-
- 数据控制语言DCL:账户管理,表维护。
- 面向对象的编程语言和面向对象的关系数据库 映射 => 数据库=项目 数据表=类 表中行=对象 行中列=对象的属性。