Mysql基础语句

一定要注意后面的分号(注意,下面的mysql>不是命令,只是一个提示)

# MySQL客户端连接服务端时的完整指令
mysql -h 127.0.0.1 -P 3306 -uroot -p
# 查看当前用户
mysql> select user();
# 查看字符集编码的指令
mysql> show variables like "%char%";
# 刷新缓存,修改密码什么的让其立刻生效
mysql> flush privileges;
# 给账号修改密码
mysql> set password for 用户名@localhost = password('新密码');
# 例子
mysql> set password for root@localhost = password('123'); 


# 查看数据库
mysql> show databases;
# 创建数据库
mysql> create database db1;
# 创建数据库并指定编码
mysql> create database db1 charset utf8; 
# 修改数据库
mysql> alter database db1 character set utf8 
# 查看数据结构
mysql> desc db1;
# 使用数据库
mysql> use db1;


# 创建表
mysql> create table t1(id int(10),name char(10));
# 查看表
mysql> show tables;
# 查看表的信息
mysql> show create table t1;
mysql> show create table t1\G;
# 查看表结构
mysql> desc t1;
# 修改表的数据类型
mysql> alter table class modify name char(16); 
# 修改表的字段名和数据类型
mysql> alter table class change class_name name char(18); 
# 插入数据
mysql> insert into t1 values(1,'admin'),(2,'password');
# 查看表中的数据
mysql> select * from t1;

约束

# not null 不为空
mysql> create table t1(name char(10) not null);
# default 默认值 
mysql> create table t2(name char(10) default 'xx');
# unique 唯一 联合唯一 unique(ip,port)
mysql> create table t1(name char(10) unique);
# auto_increment 自增 至少需要设置unique才能设置auto_increment 自带not null 不受删除影响,记录增加过的值,失败也算
mysql> create table t1(id int primary key auto_increment);
# primary key # 主键  约束效果:不为空且唯一  not null +  unique 一张表只能有一个主键,联合主键
mysql> create table t1(id int primary key);
# foreign key # 外键 级联更新 on update cascade 级联删除 on delete cascade 
# 增加外键一定要确定外键表存在 publish要比book先创建
mysql> create table publish(
		id int purimary key,
		name char(10) not null
		);
mysql> create table book(
		id int primary key,
		name char(10),
		pid int,
		foreign key(pid) references publish(id) 
		);

高级命令

待补。。。

你可能感兴趣的:(mysql)