MySQL增删改查常用命令

MySQL安装步骤
1、解压文件,解压到D:/mysql目录
2、开始菜单,输入cmd
d: 进入D盘
cd mysql 存放mysql安装包的文件夹
cd bin
mysqld –install 安装服务
net start mysal 启动服务

MySQL卸载服务
net stop mysql 停止服务
mysqld –remove 卸载服务

mysql>/q 、mysql/quite 都是退出mysql客户端

常用安装卸载命令
mysqld —install 安装服务
net start mysql 启用服务,以后自动启动
net stop mysql 停止服务
mysqld —remove 移除服务
mysql –hlocalhost –uroot –p123 登录本机mysql服务器

常用信息函数
select version(); —当前数据库服务器版本信息
select database(); —当前使用的数据库
select current_user()或select user(); —当前用户 当前的
select current_date()或select curdate(); —当前日期
select current_time()或select curtime(); —当前时间
select now(); —当前日期+时间
use mysql; —使用数据库

建立数据库
create database db;
create database if not exists db;
create database if not exists bbs default character set utf8; 默认的字符

使用数据库
use db;

查看数据库
show database;

删除数据库
drop database db;
drop database if exists db;

修改字符集
alter database ‘db’ character set utf8; 数据库名称 修改成什么字符集

表操作
字段数据类型,先使用数据库,才能使用表
——建立表
use db;
create table student(
sno int unsigned auto_increment, 无符号
sname varchar(15) not null,
sscore tinyint unsigned,
primary key(sno)
)engine=mysiam auto_increment=201501 default charset utf8; 引擎
——建立教师表
create table if not exists ‘teacher’(
tid int(4) unsigned zerofull not null auto_increment comment ‘教师编号‘
tname varchar(10) not null comment ‘教师名称’
primary key(tid)
)engine=innodb auto_increment 10 default character set utf8 comment ‘学校管理系统’
查看显示表结构student的表格
mysql> describe student;
mysql>desc student;

扫描二维码关注公众号,回复: 6221907 查看本文章

show tables; —显示所有表
show create table tb_name; —查看标准建表语句
show full columns from studentinfo; —查看表字段信息
filed字段 type类型 comment注释

建立表
create table t1(t int);
create table t2(t int);
create table t3(t int);

删除表
drop table t1;
drop table if exists t1;
——如果4个表存在,则删除
drop table if exists t,t1,t2,t3;

修改表名
rename table t1 to t4; 旧的 新的
格式:
Rename table t_old to t_new;
Alter table aa rename ab;
Alter table aa rename to ab;

查看某一个数据库的表信息
Select * from ‘db’.

—修改表的数据存储引擎
Alter table ‘db’ . ’book’ engine=innodb
Rename table ‘db’ . ‘book’ to ‘db’ . ‘aaa’

—修改表的字符集
Alter table ‘db’ . ‘aaa’ charset=utf8

—查看表结构
Desc aaa;

数据类型
1、整型
Int
tinyint (-127—128)
smallint
mediumint
bigint
unsigned无符号的,可以用来修饰int,表示取值不取负数
not null:说明该列的值不能为空,必须要填,如果不指定该属性,默认为空值
auto_increment:需在整列中使用,其作用是在插入数据时若该列为null,mysql将自动产生一个比现存值更大的唯一标识符值。
Decimal(p,s) 小数精度。如decimal(4,2) unsigned;范围为00.00-99.99,即使存入的数据为124,那么最后存入数据库的数据仍然为99.99
2、字符串类型
定长字符串,当数据长度一致时,最好是使用定长,如手机号
char 只能存储1个字
char(n) 只能存储n个字,n<=255
变长字符串,内容多,变化大的就使用变长
Varchar(n); n<=255
tinytext 255
text 65536
定长与变长的区别是指在定义的长度的指定范围内,变长是动态的根据你存储的字符串来调整存储空间。定长比较浪费资源,但是检索的速度快
tn char(10); 保存1个字,长度为10,定长最多存10个字
tn varchar(10); 保存1个子,长度为1,变长最多存10个字

3、日期时间类型
Date 日期
Time 时间
Datetime 日期和时间
Timestamp 每次进行操作的时候时间就会自动更新
如:
Create table t1(
Tt1 date,
Tt2 datetime,
Tt3 time
);
Insert into t1 values(‘2015-04-03’,’2015-04-03 18:30:12’,’18:30:12’);

修改表中的某个数据:
Update 表名 set 字段名=“修改的值”
如需要将表中的A名字换为B
Update db set sname=”B”;

表结构增加一列:
Alter table tt add score tinyint default 60;
删除一列:
Alter table st drop tt3;

一、MySQL中的数据类型
1、数字类型
(1)整数
tinyint、smallint、mediumint、int、bigint
(2)浮点数
float、double、real、decimal
unsigned无符号的,可以用来修饰int,表示取值不取负数
not null:说明该列的值不能为空,必须要填,如果不指定该属性,默认为空值
auto_increment:需在整列中使用,其作用是在插入数据时若该列为null,mysql将自动产生一个比现存值更大的唯一标识符值。
Decimal(p,s) 小数精度。如decimal(4,2) unsigned;范围为00.00-99.99,即使存入的数据为124,那么最后存入数据库的数据仍然为99.99

2、日期和时间
date、time、datetime、timestamp、year
Timestamp 每次进行操作的时候时间就会自动更新
Create table t1(
Tt1 date,
Tt2 datetime,
Tt3 time
);
Insert into t1 values(‘2015-04-03’,’2015-04-03 18:30:12’,’18:30:12’);

3、字符串类型
定长字符串,当数据长度一致时,最好是使用定长,如手机号
char 只能存储1个字
char(n) 只能存储n个字,n<=255
变长字符串,内容多,变化大的就使用变长
Varchar(n); n<=255
tinytext 255
text 65536
定长与变长的区别是指在定义的长度的指定范围内,变长是动态的根据你存储的字符串来调整存储空间。定长比较浪费资源,但是检索的速度快
tn char(10); 保存1个字,长度为10,定长最多存10个字
tn varchar(10); 保存1个子,长度为1,变长最多存10个字

二、使用数据库
1、Mysql –h(主机名) –u(用户名) –p
2、创建一个数据库
Create database 数据库名;
如:create database t1;
3、查看已经创建的数据库;
Show database;
4、创建数据库表
Create table 表名称;
如:以创建student表为例子,表中存放学号、姓名、性别、年龄、联系电话这些内容:
Create table student
(
Id int unsigned not null auto_increment primary key,
Name char(8),
Sex char(4),
Age tinyint unsigned,
Tel char(13)
);
5、删除数据库
Drop database 数据库名
如:drop database t1;
6、删除表
Drop table 表名;
如:drop table m1;

三、操作数据库
1、向表中插入数据
Insert into 表名 [列名1,列名2……] valus (值1,值2……)
如:insert into students values(null, “王刚” ,“男”,20, “1302938547”);
或:insert into students (id,name,sex) values (20,“王刚”,“男”)
如:insert into t values(null,1,‘a’),(null,2,’b’); 插入多条记录
Insert into t select * from t;把查询结果插入某表中
Replace into t values(1,’webrx) 如果ID相同覆盖插入
2、查询表中的数据
Select 列名称 from 表名称
如:select * from students;
3、按特定条件查询
Select 列名称 from 表名称 where 条件
如:
(1)查询名字大于21岁的所有人信息
select * from students where age >21;
(2)查询名字中带有“王”字的所有人信息
Select * from student where name like “%王%”;
(3)查询id小于5且年龄大于20的所有人信息
Select * from student where id<5 and age>20;
4、更新表中的数据
Update 表名称 set 列名称=新值 where 更新条件;
如:
(1)将ID为5的手机号设置为默认值
Update students set tel=default where id=5;
(2)将所有人的年龄增加1
Update students set age=age+1
5、删除表中的数据

Delete from 表名称 where 删除条件;
如:
(1)删除id=2的行
delete from students where id=2;
(2)删除所有年龄小于21岁的数据
Delete from students where age<21;

四、创建后表的修改
1、添加列
Alter table 表名 add 列名 列数据类型
如:
(1)在表的最后追加列address
Alter table students add address char(60);
(2)在名为age的列后插入列birthday
Alter table students add birthday date after age;
(3)表结构增加一列在第一位置
Alter table students add age char(4) first;
2、修改列
Alter table 表明 change 列名称 列新名称 新数据类型;
如:
(1)将表tel列改名为telphone
Alter table students change tel telephone char(13) default “-“;
(2)将name列的数据类型改为char(16)
Alter table students change name name char(16) not null;
(3)修改某列的数据类型
Alter table st modify tscore int unsigned;
Alter table st modify tscore int unsigned;
3、删除列
Alter table 表名 drop 列名称
如:
删除birthday列
Alter table students drop birthday;
4、重命名表
Alter table 表名 rename 新表名
如:重命名student表为workmates
Alter table students rename workmates;
5、删除整张表
Drop table students

----约束
主键 PK 唯一,不能为空
唯一 UK
外键 FK
默认 default

----复制其他的表结构,快速建立表
Create table aaa like student;
—根据查询的结果数据快速建立表,但没有原表的约束
Create table syb select * from student where sname like “%甘%”

一、
1、单表查询
(1)查询某个字段值:Select fname from employee;
(2)查询多个字段值:select fname,lname from t_user;
在这里插入图片描述

(3)使用查询分析器从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。员工的排序规则为:首先按工资的降序排列,然后按FNAME的字母升序排列。
(升序排列)Select fname as 名,lname as 姓,SSN as 社会保险号,bdate as 生日,salary as 工资 from employee order by salary DESC;
(降序排列)Select fname as 名,lname as 姓,SSN as 社会保险号,bdate as 生日,salary as 工资 from employee order by salary ASC;
(4)查询不重复的员工工资值
Select distinct salary from employee;
2、基于where子句进行数据查询
A:基于比较条件
(1)查询没有直接上司的员工姓名
Select fname,lname from employee where superssn is null;
(2)查询工资大于等于4000的员工资料
Select * from employee where salary>=4000;
B:基于bewteen子句的查询
(1)查询1960年—1970年之间出生的员工资料
Select * from employee where bda between ‘1960-01-01’ and ‘1969-12-31’;
C:基于IN子句的查询
(1)从表中查询出部门号为4或5的员工资料
Select * from employee where dno in(4,5);
D:基于like子句的查询
(1)从表中查询lname中含有字母O的员工资料
Select * from employee where lname like ‘%O%’;

二、多表连接查询(JOIN)
(1)查询所有为Research部门工作的员工姓名及地址
SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE E JOIN DEPARTMENT D ON E.DNO=D.DNUMBER WHERE DNAME=‘Research’;
(2)对于位于stafford的项目,查询项目的编号、项目负责部门编号以及该部门经理的姓、地址、生日
(3)SELECT P.PNUMBER, P.DNUM, E.LNAME, E.ADDRESS, E.BDATE FROM PROJECT P JOIN DEPARTMENT D ON P.DNUM =D.DNUMBER JOIN EMPLOYEE E ON D.MGRSSN=E.SSN WHERE PLOCATION =‘Stafford’

啊啊啊啊啊啊啊啊,完美的文档链接:
https://pan.baidu.com/s/19h0b0iu7j5ir3cNz6eD1Lw 提取码:wadg

猜你喜欢

转载自blog.csdn.net/m0_37786014/article/details/90169653