Mysql -h127.0.0.1 -P3306 -uroot -proot 连接数据库
//配置musql my.ini 下的字符集编码
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
Mysql //命令行
\s //查看参数信息
\q //退出
\T G:\phpdev\mysqlDemo\mysql.txt //保存sql语句
create database mybase; //创建数据库
Drop database mybase; //删除数据库
//完整设置数据库语法
Create database if not exists mybase default character set =’utf’;
use mybase; //打开数据库
select version(); //查看数据库版本
select user(); //查看用户
Select now(); //查看时间
Select database(); //查看当前打开的数据库
Show warning; //查看上一步操作产生的警告信息
show databases; //查看所有数据库
show create database mybase; //查看数句库信息
Show tables //查看数据表
desc tablename; //查看表结构
Show columns from tablename; //查看表结构
Alter database mybase default character set utf8;//修改数据库编码
Show engines; //查看存储引擎
Mysql 数据类型 help int//查看帮助手册
整数
Tinyint 有符号 -128~127 无符号 0~255
Smallint 有符号 -32768~32767 无符号 0~65535
Medlumint 有符号 -8388608 ~ 88388607 无符号0~16777215
Int BIGING
BOOL 用Tinyint 表示
浮点数
Float 4个字节
Double 4个字节
Decimal 8个字节
字符串类型
Char(m) m个字节 0<=m<=255 //固定长度 查询速度快
Varchar(m) 0<=m<=65535 //变长 查询慢 空间小
Tinttext 2的8次方
Text 2的 16次方
Medlumtext 2的 24次方
Longtext 2的 32次方
Enum(‘value’,’value’,...) 枚举值得个数 65535
Set(‘value’,’value’,...)
时期时间
Time //存储时间 -838:59 ~ 838:59:59
Data //存储日期 1000-01-01~9999-12-31
Datatime //时间加日期
Timestamp //时间戳
Year //年份 1901-2155
二进制类型
创建表
#创建数据表
create table if not exists `user`(
id smallint,
username varchar(20),
age tinyint,
sex enum('男','女','保密'),
email varchar(50),
addr varchar(200),
birth year,
salary float(8,2),
tel int,
married tinyint(1) comment '0代表没有结婚,1代表结婚 ' #comment 代表注释
)ENGINE=innodb charset=UTF8;
create table test1(
num1 tinyint unsigned, #无符号
num2 mediumint unsigned
);
创建表的完整性约束
primary key 主键 不为空 唯一 //类似于身份证号
create table `user1`(
id INT primary key,
username varchar(20)
);
create table `user1`(
id INT key, //key == primary key
username varchar(20)
);
create table if not exists `user2`(
id int,
username varchar(20),
card char(18),
primary key(id,card) #多个主键 一个值重复没有关系 同时重复不行
);
Auto_increment 自增长约束 //只能有一个 是自增长一定是主键 但是主键不一定是自增长
create table if not exists user5(
id smallint key auto_increment,
username varchar(20)
);
create table if not exists user5(
id smallint key auto_increment,
username varchar(20)
)auto_increment=100; #从100开始
Alter table user5 auto_increment=500; //设置表的自动增长初始的值
Not null 非空约束
create table if not exists user7(
id INT unsigned key auto_increment,
username varchar(20) not null,
password char(32) not null,
age tinyint unsigned
);
Default 默认值的约束
create table if not exists user8(
id INT unsigned key auto_increment,
username varchar(20) not null,
password char(32) not null,
age tinyint unsigned default 18,
addr varchar(50) not null default '南京',
sex enum('男','女','保密') not null default '男'
);
Unique key 唯一性约束 可以有多个唯一
create table if not exists user9(
id tinyint unsigned primary key auto_increment,
username varchar(20) not null unique,
card char(18) unique
);
修改表名字
Alter table user10 rename to user11;
Alter table user11 rename as user10;
Alter table user10 rename user11;
Rename user10 to user10;
添加表字段
ALTER TABLE user10 ADD card CHAR(18);
ALTER TABLE user10 ADD tes1 VARCHAR(100) NOT NULL UNIQUE;
一次添加多个表字段
alter table user1
add test4 INT not null default 123 after card,
add test5 FLOAT(6,2) first,
add test6 set('a','b','c');
//添加和删除在一起
alter table user1 add test int unsigned not null default 10 after id,
drop card;
#修改表字段 修改不了主键
alter table user1 modify username varchar(30) default 'zyc';
#添加主键
alter table test12 add primary key(id);
#添加复合主键
alter table test13 add primary key(id,card);
#删除主键
alter table test12 drop primary key;
#添加唯一
alter table test14 add unique(test1);
alter table test14 add unique(test2,test4);
#删除唯一
alter table test14 drop index test1;
#插入表信息
insert `user` values(1,'zyc','zyc','1209360331@qq.com','22');
select * from `user`;
insert `user`(username,`password`) values('a','aaaaaaaa');
#多行插入
insert `user` values(3,'zyc2','zyc2','12209360331@qq.com','24'),
(4,'zyc1','zyc1','11209360331@qq.com','32');
create table user12 (
id tinyint unsigned auto_increment key,
username varchar(20) not null unique
);
#插入查询出来的信息
insert user12 (select id, username from `user`);
更新记录
update user11 set salary=400;
update user11 set salary=salary+10 where id=1;
删除记录
delete from user11 where username='xtm';
清空表所有数据
truncate table user11