创建数据库
判断数据库是否存在,不存在则创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
CREATE DATABASE IF NOT EXISTS YK_YPCGZD;
查看当前连接的数据库有哪些
show databases;
#查看当前连接中的数据库都有哪些
SHOW DATABASES;
切换数据库
use 数据库名;
#切换数据库
USE YK_YPCGZD;
当前数据库中保存的数据表
show tables from 数据库名;
#当前数据库中保存的数据表
SHOW TABLES;
SHOW TABLES FROM yk_ypcgzd;
查看当前使用的数据库
select database() from dual
#查看当前使用的数据库
SELECT DATABASE() FROM DUAL;
创建数据表
create table if not exists 数据表名(
字段名1 数据类型(),
字段名2 数据类型()
);
create table IF NOT EXISTS YK_YPCGZD1(
xh INT(20) ,
czyh VARCHAR(20),
cjrq INT
);
CREATE TABLE IF NOT EXISTS student(
id INT PRIMARY KEY auto_increment, #PRIMARY KEY 主键,就是not null和unique结合,不能为空且唯一,一般搭配:auto_increment;
NAME VARCHAR(20) NOT NULL,
number BIGINT NOT NULL UNIQUE, #unique 唯一约束,不能插入相同的值
qq_mail VARCHAR(20) DEFAULT '[email protected]', #default 若无则默认赋值[email protected]
classes_id INT,
FOREIGN KEY(classes_id) REFERENCES classes(id)
#使用id为主键,classes_id为外键,关联班级表id
一个学生对应一个班级,一个班级对应多个学生。
);
特殊数据类型:
decimal:decimal(5,2)表示共存5位数,小数占2位
字段约束:check(),用法例如
sex VARCHAR(1),CHECK(sex=‘男’ or sex=‘女’)
查看表结构
desc 数据表名;
#查看表结构
DESC yk_ypcgzd1;
创建数据表,基于现有数据表。
create table 新数据表名 as select 字段名1,字段名2 from 旧数据表名(where 1=2);
#创建数据表,基于现有数据表(包括表数据)
CREATE TABLE yk_ypcgzd2 AS SELECT xh,czyh,cjrq FROM yk_ypcgzd1;
#不包括表数据
CREATE TABLE yk_ypcgzd3 AS SELECT xh,czyh,cjrq FROM yk_ypcgzd2 WHERE 1=2;
修改数据库
修改数据库字符集
alter database 数据库名 character set ‘字符集’;
ALTER DATABASE yk_ypcgzd CHARACTER SET 'utf8';
添加一个字段
alter table 数据表名 add 字段 数据类型(first/after 字段名);
ALTER TABLE yk_ypcgzd1 ADD num INT(20); -- 添加到最后
ALTER TABLE yk_ypcgzd1 ADD numid INT(20) FIRST; -- 添加到第一个
ALTER TABLE yk_ypcgzd1 ADD numyk INT(20) AFTER numid; -- 添加到numid之后
修改一个字段
#修改一个字段 数据类型、长度、默认值(略)
ALTER TABLE yk_ypcgzd1 MODIFY numid INT(15);
重命名一个字段
alter table 数据表名 change 旧字段名 新字段名 数据类型(长度)
ALTER TABLE yk_ypcgzd1 CHANGE numyk numyk1 INT(20);
删除一个字段
alter table 数据表名 drop column 字段名
ALTER TABLE yk_ypcgzd1 DROP COLUMN numyk1;
重命名表名
rename table 数据表名 to 新数据表名;
alter table 新数据表名 rename to 旧数据表名
#重命名表名
RENAME TABLE yk_ypcgzd3 to yk_ypcgzd21;
ALTER TABLE yk_ypcgzd21 RENAME TO yk_ypcgzd3;
SHOW TABLES FROM yk_ypcgzd;
删除表
drop table if exists 数据表
truncate table from 数据表
#删除表(完全删除)既删除表结构又删除表数据
DROP TABLE IF EXISTS yk_ypcgzd3;
SHOW TABLES FROM yk_ypcgzd;
#清空表 清空表中所有数据,表结构保留
TRUNCATE TABLE yk_ypcgzd2;
DESC yk_ypcgzd2;
删除数据库
删除指定数据库
drop database if exists 数据库名;
#如果要删除的数据库存在,则删除成功,否则,结束,不会报错
DROP DATABASE IF EXISTS yk_ypcgzd1;