select version()
CREATE DATABASE `school`CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `school`.`student` ( `id` INT(10) NOT NULL COMMENT '学员id', `name` VARCHAR(100) NOT NULL COMMENT '学员姓名', `age` INT(3) NOT NULL COMMENT '学员年龄', PRIMARY KEY (`id`) ) CHARSET=utf8 COLLATE=utf8_general_ci;
mysql -uroot -p
update mysql.user set authentication_string=password('123456') where user = 'root' and Host = 'localhost'; --修改用户密码 flush privileges; --刷新权限
show databases; --查看所有的数据库 use school; --切换数据库,use 数据库名 show tables; --查看数据库中所有的表 describe student; --显示表中的所有字段 create databases sysdb; --创建一个数据库 exit; --推出连接 -- 单行注释(sql注释) /* */ -- 多行注释
数据库语言:DDL 定义 DML 操作 DQL 查询 DCL 控制
操作数据库> 操作数据库中的表> 操作数据库中表的数据
mysql的关键字不区分大小写
CREATE DATABASE IF NOT EXISTS SYSDB;
DROP DATABASE IF EXISTS SYSDB;
-- 如果表名或者字段名是一个特殊的字符,就需要带着重号 USE `SCHOOL`;
show databases;
对照sqlyog操作查看对应的sql语句
固定的语法或者关键字需要牢记
Unsigned
无符号的整数
声明了该列不能为负数
zerofill
0填充的
不足的位数,使用0来填充
自增
通常理解为自增,自动在上一条记录的基础上+1(默认)
通常用来设计唯一的主键~index,必须是整数类型
可以自定义设计主键自增的起始值和步长
非空 NULL not NULL
假设设置为not null,如果不给他赋值,就会报错
NULL,如果不填写值,默认就是null
默认
设置默认的值
如果不指定该列的值,则有默认的值
扩展
每一个表必须存在以下五个字段,未来做项目用的,表示一个记录存在的意义
id 主键自增
version
乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
--注意,使用英文括号,并且表名使用着重号括起来 --AUTO_INCREMENT 自增 --字符串使用''括起来,所有语句后面需要加,,最后一条语句不需要加 --PRIMARY KEY 主键,一般一个表只有一个唯一的主键 CREATE TABLE IF NOT EXISTS `student` ( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码', `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别', `birthday` DATETIME DEFAULT NULL COMMENT '出生日期', `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址', `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY(`id`)) ENGINE INNODB DEFAULT CHARSET=utf8
CREATE TABLE [IF NOT EXISTS] `表名`( `字段名` 列类型 [属性] [索引] [注释], `字段名` 列类型 [属性] [索引] [注释], …… `字段名` 列类型 [属性] [索引] [注释]) [表类型][字符集设置][注释]