`heihei` INT(5) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`heihei`)
);
注:自增和默认值不能同时存在
默认 DEFAULT
DROP learn;
DROP DATABASE learn; #删除数据库
CREATE DATABASE school; #创建数据库
USE learn;
`student`
CREATE TABLE student(
id INT(4) PRIMARY KEY AUTO_INCREMENT COMMENT '主键,学号',
pwd VARCHAR(20) DEFAULT '123456' NOT NULL COMMENT '密码',
`name` VARCHAR(30) DEFAULT '匿名' NOT NULL COMMENT '姓名',
sex VARCHAR(2) NOT NULL DEFAULT '男',
birthday DATETIME COMMENT '出生日期',
address VARCHAR(100) COMMENT '家庭住址',
email VARCHAR(50)
)
CREATE TABLE student(
studentNo INT(4) NOT NULL PRIMARY KEY COMMENT '学号',
Pwd VARCHAR(20) NOT NULL COMMENT '密码',
`studentName` VARCHAR(50) NOT NULL COMMENT'姓名',
`sex` CHAR(2) DEFAULT '男'NOT NULL COMMENT'性别',
`gradeID` INT(4) UNSIGNED COMMENT'年级编号',
`phone` VARCHAR(50)COMMENT '联系电话',
`address` VARCHAR(255) DEFAULT'地址不详' COMMENT'地址',
`bornDate` DATETIME COMMENT '出生时间',
`email` VARCHAR(50) COMMENT '邮件账号',
`identityCard` VARCHAR(18) COMMENT'身份证号'
)
#更改学生姓名为李文才的Email为~~~~~
UPDATE student SET email='~~~~~' WHERE studentName='李文才'
SELECT *
#将学生表中学号为20000的学生的邮箱修改为---------密码修改为
UPDATE student SET email='hahahah' pwd='hahha' WHERE id='20000'
SELECT student
#将科目表中课时数大于200且年级编号为1的科目的课时减少10
UPDATE kemubiao SET keshi=keshi-10 WHERE keshi>200 AND bianhao='1'
#将所有年级编号为1的学员姓名、性别、出生日期、手机号码信息保存到新表student_grade1中
#查询2016年2月17日考试前5名学员的学号和分数
#将所有女学生按年龄从大到小排序,从第2条记录开始显示6名女学生的姓名、年龄、出生日期、手机号信息
#查询参加2016年2月17日考试的所有学员的最高分、最低分、平均分
#显示表结构
DESC student;
#查看表定义 也可以查看数据库定义
SHOW CREATE TABLE student;
SHOW CREATE DATABASE learn;
#设置数据库、表、字段的字符集
CREATE DATABASE `learn` /*!40100 DEFAULT CHARACTER SET utf8 */
# 数据库默认字符编码
#设置列的字符编码集
CREATE TABLE a(
address CHAR(5) CHARACTER SET gbk
)
CREATE TABLE `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '主键,学号',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT '男',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
#引擎 INNODB(支持增删改查、事务、外键) 默认字符集
# 引擎 NyISAM (偏向查询 支持全文索引 表空间小)
#创建一个测试表格
CREATE TABLE test(
coll INT(4) ZEROFILL NOT NULL
)
#设置严格检查模式
SET sql_mode='strict_trans_tables';
CREATE TABLE tab1(
id INT(4) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL
)
#自增列默认初始值为1 步长1
#能否改变自增列的初始值? 100
#只影响当前表
CREATE TABLE tab1(
id INT(4) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL
)AUTO_INCREMENT=100;
#改变自增列的步长
#影响的时所有使用自增列的表
SET @@auto_increment_increment=5;
#同一个列可以被多个属性来修饰的 但是注意属性的顺序
CREATE TABLE `learn`.``( /* 未指定表名 */
`heihei` INT(5) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`heihei`)
);
#查看MySQL所支持的引擎类型(表类型)
SHOW ENGINES;
#查看默认引擎
SHOW VARIABLES LIKE 'storage_engine';
# INNODB
# C:\ProgramData\MySQL\MySQL Server 5.7\Data\learn
# *.frm 表结构定义文件
# 数据文件在Data文件夹下的 ‘ibdata1’ 文件
# NyISAM
# *.frm 表结构定义文件
# *.MYD 数据文件
# *.MYI 索引文件
#修改数据表
#修改表名
ALTER TABLE '旧表名' RENAME AS '新表名'
#添加字段
ALTER TABLE '表名' ADD '字段名' '列表类型[属性]'
#修改字段
ALTER TABLE '表名' MODIFY '字段名' '列表类型[属性]'
ALTER TABLE '表名' CHANGE '旧字段名' '新字段名' '列表类型[属性]' /*修改力度较强 可以修改字段名*/
#删除字段
ALTER TABLE '表名' DROP '字段名'
#删除数据表 if exists可选
DROP TABLE IF EXISTS haha