前言
数据库(database)是可以说是互联网的基础,不学以后怎么混饭吃?
SQL语法是不区分大小写的,但是命名的时候最好注意规范,语法规定用
_
来代替空格
我是用《深入浅出SQL》这本书来学习的,网上可以查W3School~
基础语法
-
语句
CREATE
creatr database my_db;
use my_db;
create table my_info
(
my_id int not null auto_increment,
my_name char(50),
primary key(my_id)
)DROP
drop table my_nameINSERT
insert into table my_info(col0,col1...) values('num0','num1'...)SELECT
select * from tavle_name where ..
select 展开讲太多了,最重要的还是灵活运用子查询和各种连接
-
UPDATE
update table table_name set col = case when condition0 then reslut0 when condition1 then result1 end; ```
-
DELETE
delete table_name from where conditon -
SHOW
show databases/tables -
ALTER
alter table table_name add col..., rename to ..., change..., modify..., drop ..
其实就是对表进行修改
-
关键词
USE:接下来的操作都在某个db中进行
DESC:显示db的结构 /在order by
中代表逆序
NULL:不是值,代表未被定义的值
DEFAULT:缺省值
LIKE:查找部分文本字符串 , **%
**:替换符
BETWEEN:在...之间(<=&&>=)
AFTER:把某列放在另一列之后
RIGHT(),LEFT():选出指定数量的字符
select right('location',2) from my_table
ORDER BY(),GROUP BY():按...排序,按...分组
MIN(),MAX(),AVG(),SUM(),COUNT():其中count()
作用是返回指定列中的元素
DINSTINCT:查询列中出现过的不重复元素
LIMIT:查询结果的数量 limit m,n #从m开始一共查询n个
T.x -> T.y:在关系表T中,y列函数依赖x列
having:对已经排序的结果进行限制,常和group by
等关键词组合使用
-
数据模式
- 一对一
- 一对多
- 多对多
- ACID:原子性,一致性,隔离性,持久性
-
RDBMS的规范:
1NF:数据具有原子性,有主键
2NF:任何非关键列完全依赖关键列(不存在部分函数依赖)
3NF:任何非关键列不以来其他非关键列(不存在传递函数依赖)
字符一般加引号,列名不加