推荐数据库学习和练习网站:
大学数据库推荐网课:
刷题
- 各种题目:LeetCode
- 基础题:SQLZOO
教程:
- 中文版:易百教程
- 英文版:MySQL Tutorial
总结
- 关键字的使用大小写不敏感,意思是说,用大写,小写敲语句都是一样的
- 每个表只能由一个自增的列,并且自增的列不可以设置默认值
- 自增列删除数据过后,数据列不会连续,但可以写一些语句弥补
- 数据类型中,char是不可变长度的,数据如果不够长就填充,varchar是可变长度的数据类型
- 一个表中只能由一个主键,但是主键可以是复合主键,即一个主键里面可以有多个列
- 数据库中查询操作是一大块需要重点学习的地方,算法题大多练习的都是select 的操作。
- 实际中,我认为如果不是专门做数据库方面的,基础的sql语句足以了,至少我是足以了( ̄y▽, ̄)╭
数据库
##显示数据库
show databases;
##创建数据库(timeline 是我的数据库名字)
create database timeline;
##使用数据库
use timeline
table
所有主键列都是表的主索引
## 显示已有的表格
show tables;
##创建表(user是表名,if not exists 是可选项)
create table if not exists user(
-> userid char(20) primary key default '')
-> ;
##显示表格各个数据类型的详细属性
describe user;
##添加新的列
alter table user
-> add column email
-> varchar(30) not null default '',
-> add column password
-> varchar(12) not null default '';
##添加unique constraint
alter table user
-> add constraint uni_email
-> unique (email);
##插入数据
insert into user(userid,email,password)
-> values ('202006201008234000','2345@qq.com','123445');
#删除数据
delete from user
-> where email='2345@qq.com';
#修改数据
update user
-> set email='12345@qq.com';
bug
version: MySQL 8.0 Command Client
create table if not exists user(
-> userid char(20) primary key default null
-> );
ERROR 1067 (42000): Invalid default value for 'userid
char 的默认值只能是这里不能设置位null,可以用改成空字符串’’;