数据库的列类型
数值:
字符串:
时间日期:
null:
数据库的字段属性
数据库操作符
算术运算符
比较运算符
逻辑运算符
注意:如果在where中同时用到了and 和or运算符,先算and后算or,因为and优先级高;可以使用小圆括号来改变运算的顺序。
位运算符等
创建数据库表
代码:
CREATE TABLE IF NOT EXISTS `class`(
`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
常用查询语句
SHOW CREATE DATABASE student -- 查看创建数据库的语句
SHOW CREATE TABLE class -- 查看数据表的定义语句
DESC class -- 显示表的结构
修改删除表
-- 修改表
ALTER TABLE class RENAME AS class1 -- 修改表名
ALTER TABLE class1 ADD age INT(3) -- 增加表的字段
ALTER TABLE class1 MODIFY age VARCHAR(11) -- 修改约束
ALTER TABLE class1 CHANGE age age1 INT(11) -- 修改字段名
ALTER TABLE class1 DROP age1 -- 删除字段名
-- 删除表
DROP TABLE IF EXISTS matlab -- 删除表
MySQL数据管理
外键(比较复杂)
CREATE TABLE IF NOT EXISTS `grade`(
`id` INT(3) NOT NULL AUTO_INCREMENT COMMENT '年级',
`name` VARCHAR(10) NOT NULL DEFAULT '匿名' COMMENT '姓名',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
CREATE TABLE IF NOT EXISTS `matlab`(
`id` INT(3) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(10) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
PRIMARY KEY (`id`),
KEY `FK_id` (`id`),
CONSTRAINT `FK_id` FOREIGN KEY (`id`) REFERENCES `grade` (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
DML语言(重点)
DML语言:数据操作语言
添加
代码演示:
-- 插入语句
-- 插入单行单个数据
INSERT INTO `class`(`name`) VALUES ('zheng')
-- 插入单行多个数据
INSERT INTO `class`(`name`,`pwd`,`sex`) VALUES ('liu','456215','女')
-- 插入多行单个数据
INSERT INTO `class`(`pwd`) VALUES ('455612'),('789456')
-- 插入单行全部数据省略了字段
INSERT INTO `class` VALUES ('5','li','22222','女','2000-02-02','北京','email')
注意:
1.字段和字段之间使用英文逗号隔开
2.字段是可以省略的,但是后面的值必须要要——对应,不能少
3.可以同时插入多条数据,VALUES后面的值,需要使用“,”隔开即可
修改
代码演示:
-- 修改语句
UPDATE `class` SET `name`='lz' WHERE id=1 -- 指定一个条件修改
UPDATE `class` SET `name`='www' WHERE sex='男' AND pwd=455612 -- 指定多个条件修改,用AND连接
UPDATE `class` SET `name`='sss',`email`='aaa' WHERE id BETWEEN 3 AND 4 -- 指定范围修改多个数据
UPDATE `class` SET `birthday` = CURRENT_TIME WHERE id<4 -- 修改时间
删除
代码演示:
-- 删除语句
DELETE FROM `class` WHERE id=4 -- 使用此方法不影响自增
TRUNCATE TABLE `class` -- 使用此方法自增会归零
注意:
InnoDB自增列会重1开始 (存在内存当中的, 断电即失)
MyISAM继续从上-一个自增量开始(存在文件中的, 不会丢失)