创建数据库:DDL
mysql -uroot -pQianfeng@123 -e"create database db2 default charset 'utf8'"#数据库命名规则:
区分大小写
唯一性
不能使用关键字如 create SELECT
不能单独使用数字
不要使用中文
#查看所有数据库
show databases;#查看创建的库信息
show create database school;#查看当前库
SELECT database();#切换数据库
use school
show tables;
#授权语句
GRANT ALL ON *.* TO 'remote'@'%' IDENTIFIED by 'Qianfeng@123';#刷新权限
FLUSH PRIVILEGES;#创建库
CREATE DATABASE school DEFAULT charset 'UTF8';#切换数据库
USE school;
CREATE TABLE student(`id` INT,
`name` VARCHAR(50),
`sex` enum('male','female'),
`age` int
)ENGINE="INNODB"#查看表
SHOW TABLES;#查看表结构
DESC student;#显示数据的详细信息
SHOW TABLE STATUS LIKE 'student'\G;#查询表中指定字段的值
SELECT id,name,sex,age FROM student;#查询表中所有字段的值
SELECT * FROM student;#查询表中指定字段的值
SELECT name,age from student;#修改表:
alter #修改表名称 修改字段名称 修改字段数据类型 修改字段的修饰符
insert #插入数据
delete #删除数据
update #更新数据 ##修改表名称rename table emp to abc;
alter table abc rename emp;##添加新字段
create table t1(id int(5),name varchar(20));
alter table t1 add math int(10);#添加math
alter table t1 add(chinese int(10),english int(10));#修改字段修饰符(约束)
alter table t1 modify chinese int(5) not null;#修改字段名称、数据类型、修饰符(约束)
alter table t1 change chinese china int(6);##change修改字段名以及约束条件,字段类型
alter table t1 change english en int(6) after id;
alter table t1 change en en int(6) after name;
alter table t1 modify en int(6) after name;##modify修改字段类型以及约束条件
alter table t1 modify en int(6) first;
alter table t1 modify en int(6) after id;#删除字段
alter table t1 drop en;#插入数据(添加记录)
字符串必须引号引起来
insert into t1(id,name,math,china) values(1,"wing",80,90);
insert into t1(id,name,math,china) values(2,"king",70,100),(3,"tom",50,70);
insert into t1 values(4,"xiaosan",50,100);
insert into t1(id,math) values(5,70);
insert into t1 setid=6,math=65;#更新记录
update t1 setname="lili" WHERE id=5;#删除记录
delete from t1 WHERE id=6;
delete from t1;##删除所有记录#表复制:
复制一张表
create table t10(SELECT * from t3);
create table t10(SELECT id,name from t3);
复制表结构
create table t4 select *from t3;#复制表和所有内容
create table t4(SELECT * from t3 WHERE 5=4);#只复制指定字段
create table t4(SELECT id,name from t3 WHERE 5=4);#复制记录
insert into t3 SELECT * from t10 WHERE id=9; 俩表格字段要相同
#删除表
drop table t1;#删除库
drop database newrain;
了解(!!!)
表完整性约束
作用:用于保证数据的完整性和一致性
==============================================================
约束条件 说明
NOT NULL 标识该字段不能为null
UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值
UNSIGNED 无符号(正数)
ZEROFILL 使用0填充,例如0000001
说明:
1. 是否允许为空,默认NULL;可设置NOT NULL,字段不允许为空,必须赋值
2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
sex enum('male','female') not null default 'male'
age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20