关系数据库: MySql ,Oracle, sql server , db2 ,sqlite,
非关系数据库: redis mongodb
SQL语句:结构化语句
规范:
1、不区分大小写(命令建议大写)
2、以分号作为结束符号
3 、注释 -- /* */
===================================day1==========================
数据库的操作
SHOW DATABASES; --查看所有的数据库
CREATE DATABASE database_name --创建数据库
SHOW CREATE DATABASE database_name--查看创建数据库信息
DROP DATABASE database_name----删除某一个数据库
USE database_name -----使用某个数据库
数据表的操作
----创建一个表 create
CREATE TABLE table_name(
字段名 字段数据类型 [约束] ,
字段名 字段数据类型 [约束] ,
字段名 字段数据类型 [约束] ,
....
字段名 字段数据类型 [约束]
)
----约束:
主键(primary key):非空 且 唯一
not null: 非空约束
unique: 唯一约束
----修改表 alter
增加列(字段)
alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
修改一列类型
alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
修改列名
alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
删除一列
alter table tab_name drop [column] 列名;
修改表名
rename table 表名 to 新表名;
修该表所用的字符集
alter table student character set utf8;
----查看表 desc
desc table_name
show tables
show create table table_name
----删除表 drop
drop table table_name
===================================day2==========================
表记录的操作
----插入表记录 insert
-- 插入一条数据 insert
INSERT [INTO] table_name (字段名称,...) VALUES (值....);
-- 插入多条数据
INSERT [INTO] table_name (字段名称,...) VALUES (值....),
(值....),
....
(值....);
----修改表记录 update
UPDATE table_name set 字段=值,字段=值... WHERE 字句
----删除表记录 drop
DELETE FROM table_name WHERE 字句;
truncate TABLE table_name;
----查询表记录 select
--查询语法:
SELECT *|field1,filed2 ... FROM tab_name
WHERE 条件
GROUP BY field
HAVING 筛选
ORDER BY field
LIMIT 限制条数
where子句中可以使用:
----比较运算符:
> < >= <= <> !=
between 80 and 100 值在10到20之间
in(80,90,100) 值是10或20或30
like 'yuan%'
and or not
order by子句:
select *|field1,field2... from tab_name order by field [Asc|Desc]
-- Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。
limit子句:
SELECT * from ExamResult limit 1;
REGEXP使用:
SELECT * FROM employee WHERE emp_name REGEXP '^yu';
===================================day3==========================
外键约束
表与表的关系:
一对多
[ADD CONSTRAINT charger_fk_stu] FOREIGN KEY (charger_id) REFERENCES ClassCharger(id)
-----------增加外键和删除外键---------
ALTER TABLE student ADD CONSTRAINT abc
FOREIGN KEY(charger_id)
REFERENCES classcharger(id);
ALTER TABLE student DROP FOREIGN KEY abc;
多对多:
第三张表中创建两个外键关键
一对一
对外键字段加一个唯一约束
2、多表查询
SELECT * FROM employee INNER JOIN department ON employee.dept_id = department.dept_id;
SELECT * FROM employee LEFT JOIN department ON employee.dept_id = department.dept_id;
-- 子查询
SELECT * FROM employee WHERE dept_id IN (SELECT dept_id FROM department);
========================================================
一对多,有外键的那张表是多,建立关系只需要一和多两张表就可以了
有外键的是子表,另一个是主表
多对多需要第三张表建立关系,两个外键
外键是可以设置成递增的
=========================================================