MySQL小笔记

230 阅读3分钟

整理之前MySQL的小笔记,可以充当了解MySQL的小小途径......


#查看所有的数据库
show databases;    
#创建一个数据库:demotestone             
create database demotestone;
create database if not exists demotestone;
#删除一个数据库
drop database demotestone;
#使用这个数据库
use demotestone;

#表#
#查看所有的表
show tables;
#创建一个表
create table user(
    id int auto_increment not null primary key,
    username varchar(20) not NULL COMMENT '用户名',
    password varchar(20) not NULL COMMENT '密码',
    phone varchar(13) COMMENT '联系方式'
)CHARSET=utf8;
#直接将查询结果导入或复制到新创建的表
create table copyUser select * from user;
#新创建的表与一个存在的表的数据结构
create table copyAddress like address;
#删除一个存在表
drop table if exists copyaddress;
#更改存在表的名称
alter table copyuser1 rename copyuser;
#查看表的结构
desc user;
#查看表的创建语句
show create table user;


#表的结构#
#添加字段
alter table copyuser add age varchar(2);
#删除字段
alter table copyuser drop age;
#更改字段属性和属性(a是旧,age是新,int是类型)
ALTER table copyuser change a age int;
#只更改字段属性
alter table copyuser modify age VARCHAR(7);


#######表的数据##########
#增加数据
insert into user values (2,'雄安','123','1302598');
insert into user (username,password) values('小模','136');
#删除数据
delete from user where id = 4;
#更改数据
update user set username='小米' where id=1;
#数据查找
select * from user where username like '%小%';
#数据排序(反序)
select * from user order by username,password,id desc;

#######键##########
#添加主键
alter table user add primary key (id);
#删除主键
alter table user drop primary key;
#添加外键(自动生成键名address_ibfk_1)
alter table address add foreign key (userid) REFERENCES user(id);
#删除外键
alter table address drop foreign key `address_ibfk_1`;
#修改外键
alter table address drop foreign key `address_ibfk_1`,add CONSTRAINT address_ibfk_2 FOREIGN key (id);
#添加索引
alter table user add index (username);
#删除索引
drop index username on user;

#####视图######
#创建视图
create view userView
 as select id,username,password,phone from user;
create view userView1(id,username)
 as select id,username from user;
#查看视图
select * from userView1;
#查看创建视图语句
show create view userView;
#删除视图
drop view if exists userView1;

#####联接######
#内链接
CREATE TABLE n(id INT PRIMARY KEY, name VARCHAR(10),product varchar(10));
CREATE TABLE m(id INT PRIMARY KEY, name VARCHAR(10),phone VARCHAR(13));
#内链接
select * from m INNER JOIN n on m.id = n.id;
#左外联接
select * from m left join n on m.id = n.id;
#右外联接
select * from m right join n on m.id = n.id;

#####函数######
#聚合函数
select count(id) as total from user;  #总数
select sum(age) as all_age from copyuser; #总和
select avg(age) as all_age from copyuser;  #平均值
select max(age) as all_age from copyuser;  #最大值
select min(age) as all_age from copyuser;  #最小值
#数学函数
select abs(-5);   #绝对值
select bin(15),oct(15),hex(15);   #二进制、八进制、十六进制
select pi();  #圆周率3.141493
select ceil(5.5);   #大于x的最小整数值6
select floor(5.5);  #小于x的最大整数值5
select mod(5,3);    #余数2
select rand();      #返回0到1的随机数
select round(3.45); #四舍五入3
select round(3.45,1);   #四舍五入3.5 保留一位
select sqrt(9);  #平方根3
#字符串函数
select concat('h','e','l','l','o');   #连接字符串hello
select length('chinese');             #返回字符串长度7
select reverse('olleh');              #反转hello
select upper('HellO'),lower('HellO');  #大写HELLO  小写hello
select strcmp('abc','abd');      #比较字符串,参数一小于参数二返回-1 
#时间函数
select current_date,current_time,now(); #(2019-08-08)(17:12:24)(2019-08-08 17:12:24)
#系统信息函数
select database(); #当前数据库名 
select user();     #当前用户
select version();  #MySQL版本

##########用户##############
#增加用户
create user 'test'@'localhost' IDENTIFIED by 'test';
#删除用户
drop user 'test'@'localhost';

##########存储过程############
#创建存储过程
create PROCEDURE getDates()
	begin
	select * from user;
end
create procedure getUserInfo

#删除存储过程
drop PROCEDURE if exists getDates;
execute getDates();

小补充:练习环境-->Navicat for MySQL