数据库、表、数据操作

数据库操作

创建数据库

1
CREATE DATABASE student CHARSET utf8;

命名规则:

  • 可以由字母、数字、下划线、@、#、$
  • 区分大小写
  • 唯一性
  • 不能使用关键字如 create select
  • 不能单独使用数字
  • 最长128位

数据库相关操作

1、查看数据库

1
2
3
SHOW DATABASES;
SHOW CREATE DATABASE db1;
SELECT database();

2、选择数据库

1
USE student;

3、删除数据库

1
DROP DATABASE db1;

4、修改数据库

1
ALTER TABLE db1 CHARSET utf8;

表操作

创建表

create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

1
2
3
4
5
6
CREATE TABLE student(
id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32),
age INT(3),
sex ENUM('male','female') DEFAULT 'male'
);
  1. 在同一张表中,字段名是不能相同
  2. 宽度和约束条件可选
  3. 字段名和类型是必须的

查看表

1
2
3
SHOW TABLES ;
SHOW CREATE TABLE student;
DESC student;

修改表

1、修改表名

1
2
ALTER TABLE 表名 RENAME 新表名;
ALTER TABLE 表名 ENGINE = innodb;

2、增加字段

1
2
3
4
5
6
7
8
ALTER TABLE 表名 
ADD 字段名 数据类型 [完整性约束],
ADD 字段名 数据类型 [完整性约束];


ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束] FIRST;

ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束] AFTER 字段名;

3、删除字段

1
ALTER TABLE 表名 DROP 字段名;

4、修改字段

1
2
3
ALTER TABLE 表名 MODIFY  字段名 数据类型 [完整性约束条件];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件];

5、增加\删除主键

1
2
3
ALTER TABLE 表名 MODIFY id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT;

ALTER TABLE 表名 DROP PRIMARY KEY ;

复制表

复制表结构+数据

1
CREATE TABLE 新表名 SELECT * FROM 旧表名;

只复制表结构

1
2
3
CREATE TABLE 新表名 SELECT * FROM 旧表名 WHERE 1=2;

CREATE TABLE 新表名 LIKE 旧表名;

删除表

1
DROP TABLE 表名;

数据类型

(http://www.cnblogs.com/linhaifeng/articles/7233411.html)[http://www.cnblogs.com/linhaifeng/articles/7233411.html]

完整性约束

(http://www.cnblogs.com/linhaifeng/articles/7238814.html)[http://www.cnblogs.com/linhaifeng/articles/7238814.html]

海峰博客-表操作

数据操作DML

插入数据INSERT

1、插入完整数据(顺序插入)

1
2
3
INSERT INTO 表名(字段1,字段2,字段3) VALUES (值1,值2,值3);

INSERT INTO 表名 VALUES (值1,值2,值3);

2、插入多条记录

1
2
3
4
INSERT INTO 表名 VALUES 
(值1,值2,值3),
(值1,值2,值3),
(值1,值2,值3);

3、插入查询结果

1
INSERT INTO 表名(字段1,字段2,字段3) SELECT (字段1,字段2,字段3) FROM2 WHERE ...;

更新数据

1
2
3
4
5
UPDATE 表名 SET 
字段1=值1,
字段2=值2 WHERE 条件;

UPDATE mysql.user SET password=password('123') where user='root' and host='localhost';

删除数据

1
2
3
DELETE FROM 表名 WHERE 条件;

DELETE FROM mysql.user WHERE password='';

查询数据

单表查询
多表查询