-- 连接服务器
mysql -hlocalhost -p3306 -uroot -p
-- 设置字符集
set names GBK;
use mydatabase;
-- 修改数据库字符集
alter database mydatebase charset GBK;
-- 设置student表的字符集
alter table student charset=utf8;
-- 创建表
-- mydatabase.可省略
create table if not exists mydatabase.my_student(name varchar(10),gender varchar(10),number int)charset utf8;
create table my_class(name varchar(10),room varchar(10))charset utf8;
--
create table if not exists student(name varchar(10),gender varchar(10),number int)charset utf8;
create table class(name varchar(10),room varchar(10))charset utf8
-- 对整个数据库的操作-- 对整个数据库的操作-- 对整个数据库的操作-- 对整个数据库的操作
-- 查看自增长变量
show variables like 'auto_increment%';
-- 修改自增字段每次增加的值为5
set auto_increment increment=5;
-- 查看所有字符集
show character set;
-- 查看服务器默认的对外处理的字符集
show variables like 'character_set%';
-- 修改服务器认为客户端数据的字符集为GBK
set character_set_client=gbk;
-- 修改服务器给定的数据为GBK
set character_set_results=gbk;
-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看-- 查看
-- 查看数据库
show databases;
-- 查看表
show tables;
-- 查看以S结尾的表
show tables like '%s';
-- 查看表的所有字段:2种方法
show columns from student;
Desc my_primaly1;
-- 查看student表的所有字段的数据
select * from student;
-- 去重复查看student表的数据
select distinct * from student;
select all * from myprimary;-- 默认为all
-- 查看student表的id=5的id,number,sex,name,gender字段数据
select id,number,sex,name,gender from student where id=5;
-- 查看数据库创建语句
show create database `datebase`;
-- 查看表创建语句-纵向
show create table my_primaly1\G;
-- 查看表创建语句-横向
show create table my_primaly1\g;
-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改-- 修改
-- 新增age字段在第一行
alter table student add column age int first;
alter table banji add column class int after id;
-- 新增age字段在name字段后面一行
alter table student add ages int after name;
alter table student add class int after gender;
-- 修改number字段属性为varchar(20)
alter table my_primaly1 modify number varchar(20);
-- 修改number字段为char(10),放在id后面一行
alter table student modify number char(10) after id;
-- 把id字段放在第一行
alter table student modify id int first;
-- 重命名student表的age字段为sex char(10)
alter table student change ages sex char(10);
-- 重命名主键时不用加primary key auto_increment,否则提示multiple primary key are defined.
alter table banji change banji id class int;
-- 新增student表的数据
insert into student values(2,28,54,'xiaowang',1,'male'),(3,22,86,'xiaohua',2,'female'),(4,24,45,'xiaowang',2,'female');
-- 新增student表的部分字段数据
insert into student(number,gender,name,id,age) values('wanyi001','male','tom',5,32),('wanyi002','male','lili',6,33);
-- 修改student表的name=xiaoming的行的gender字段值为female
update student set gender='female' where name='xiaoming';
update banji set name='制药工程' where id=1 ;
update banji set name='药剂学' where id=2 ;
-- 3-08修改表选项的自增起始值(默认为1),向下无效,向上有效
alter table my_primaly1 auto_increment =10;
-- 把名字叫李娜的前2个人的学号改为200908020019
update myprimary set number =200908020019 where name='李娜' limit 2;
-- 把id字段放到第一行
alter table student change id id int first;
-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除-- 删除
-- 删除数据库
drop database mydatabase;
-- 删除表
drop table my_class;
-- 删除所有sex字段不为空的数据
delete from student where sex;
-- 删除id>2的所有数据
delete from banji where id>2;
-- 删除字段sex
alter table student drop column sex;
-- 删空了自增长还是原来的
delete from my_class;
-- 清空表数据,重置自增长
truncate my_class;
-- 删除主键
alter table my_primaly modify1 id int;
-- 下面为错误
alter table my_primaly modify1 id int primaly key;
-- 定点型数据
create table my_decimal(f1 float(10,2),d1 decimal(10,2))charset utf8;
-- 添加数据
insert into my_decimal values(1234.123456,1234.123456789),(99999999.99,99999999.99);
-- 2-6时间
create table my_date(d1 datetime,d2 date,d3 time,d4 timestamp,d5 year)charset utf8;
-- 添加数据
insert into my_date values('2016-5-13 13:42:44','2016-5-13','13:44:38','2016-5-13 13:45:00','69');
select * from my_date;
-- 2-9枚举字符串
create table my_enum(gender enum('男','女'))charset utf8;
-- 插入数据
insert into my_enum values(1),(2),(2);
select * from my_enum;
-- 将字段结果取出来进行0运算,0为照妖镜
select gender+0,gender from my_enum;
-- 2-10集合字符集,和枚举差不多,但是多选
create table my_set(hobby set('篮球','足球','排球','网球','台球','棒球','羽毛球','乒乓球','跑步','体操'))charset utf8;
insert into my_set values('台球,羽毛球');
insert into my_set values(8888);
insert into my_set values(1266);
insert into my_set values(1023);
insert into my_set values(4);
insert into my_set values(2);
select * from my_set;
-- 将字段结果取出来进行0运算,0为照妖镜
select hobby+0,hobby from my_set;
-- 求varchar在utf8和GBK下的最大值
-- 21844*3+2=65534
create table myutf8(name varchar(21844))charset utf8;
-- 32766*2+2=65534
create table mygbk(name varchar(32766))charset gbk;
-- mysql的记录长度对大为65535个字节
-- 释放null,把65535字节用完,不写null就是默认为null-- 就是可以为空
-- 1+ 21844*3+2=65535
create table myutf81(age tinyint not null,name varchar(21844) not null)charset utf8;
-- 1+ 32766*2+2=65535
create table mygbk1(age tinyint not null,name varchar(32766) not null)charset gbk;
-- 证明text字段占用10个字节长度
-- 10+ 21841*3 +2=65535
create table myutf8text1(textf text not null,name varchar(21841) not null default 0)charset utf8;
-- 10+ 32761*2 +1 +2=65535
create table mygbktext1(textf text not null comment '文本字段',age tinyint not null comment '迷你整型',name varchar(32761) not null comment '变长字符串')charset gbk;
-- 3-02增加主键
create table my_primaly1(id int primary key auto_increment comment '逻辑主见:自增长',name varchar(20)not null comment '姓名',number char(10) not null comment '学号')charset utf8;
-- 修改number
alter table my_primaly1 modify number varchar(20);
insert into my_primaly1(name) values('邓丽君');
insert into my_primaly1 values(null,'长孙玄奇',200902020012);
insert into my_primaly1 values(default,欧阳修',200908020018);
insert into my_primaly1 values(1,'圣',200908020013);
insert into my_primaly1 values(2,'宋',200908020012);
insert into my_primaly1 values(3,'彭',200908020011);
insert into my_primaly1 values(4,'刘',200908020014);
-- 3-10增加唯一主键
-- 增加唯一键
create table my_unique1(number varchar(20) unique comment'学号:唯一,允许为空',name varchar(20)not null)charset utf8;
-- 增加唯一主键,因为它是唯一的,刚好系统没主键,就把他当作主键
create table my_unique2(number varchar(20) comment'学号:唯一,允许为空',name varchar(20)not null,unique key(number)charset utf8;
-- 创建表之后增加 唯一键
create table my_unique3(id int primary key auto_increment,number varchar(20) not null,name varchar(20)not null)charset utf8;
-- 增加唯一键,若已经存在主键,发现没有唯一键,加一个唯一键
alter table my_unique3 add unique key(number);
Desc my_unique3;
-- 删除唯一键,唯一键可以有多个
alter table my_unique3 drop unique key;-- 错误,唯一键有多个
alter table my_unique3 drop index number;-- 正确,删除number唯一键
Desc my_unique3;
-- 3-13范式-2NF:不能出现部分依赖,增加类列关键字
-- 范式-3NF :不能出现传递依赖
-- 修改表名
rename table my_primaly2 to myprimary2;
|
|