入门数据库MySQL5.7版本常用命令及相关内容介绍

一、客户端用命令窗口(用过管理员打开)启动与关闭服务命令

启动服务:

 net start mysql57

关闭服务:

 net stop mysql57

二、创建数据库

create database 库名;

三 、查看当前在哪个库里面

select databases();
修改数据库的名字
--创建新表 
creat database newdb;
-- 执行语句
rename table newdb.字段 to olddb.字段;

四、进入库里面

use 库名;

五、判断是不是存在这个数据库否则创建数据库

create database if not exists 库名;

六、查看数数据库字符集并指定字符集gbk

--  查看数据库字符集
show create database 库名;   
-- 指定字符集
creat database 库名 default character set gbk;

七、 创建表

create table 表名(
							字段名1 字段类型  约束条件1,约束条件2 说明,
							字段名2 字段类型  约束条件1,约束条件2,说明,
							字段名3 字段类型3 约束条件3 说明3
							);
约束条件介绍
comment --说明解释
not null --不为空
default --默认值
unsigned --无符号(正数)
auto_increment --自增
zerofill --自动填充
unique key --唯一值
primary key --主键
数据类型(字段类型)
--整数型
 		类型      大小      范围(有符号)               范围(无符号unsigned)    用途
     TINYINT   1 字节    (-128127)                (0255)                 小整数值
     SMALLINT  2 字节    (-3276832767)            (065535)               大整数值
     MEDIUMINT 3 字节    (-83886088388607)        (016777215)            大整数值
     INT       4 字节    (-21474836482147483647)  (04294967295)          大整数值
     BIGINT    8 字节     ()                       (0264次方减1)        极大整数值
--浮点型
 FLOAT(m,d)  4 字节    单精度浮点型  备注:m代表总个数,d代表小数位个数
 DOUBLE(m,d) 8 字节    双精度浮点型  备注:m代表总个数,d代表小数位个数
 
--定点型(常用)
 DECIMAL(m,d)    依赖于M和D的值    备注:m代表总个数,d代表小数位个数
--字符串类型 
 类型          大小              用途
 CHAR          0-255字节         定长字符串
 VARCHAR       0-65535字节       变长字符串
 TINYTEXT      0-255字节         短文本字符串
 TEXT          0-65535字节       长文本数据
 MEDIUMTEXT    0-16777215字节    中等长度文本数据
 LONGTEXT      0-4294967295字节  极大文本数据
 --char的优缺点:存取速度比varchar更快,但是比varchar更占用空间
 --varchar的优缺点:比char省空间。但是存取速度没有char快
 --一般用varchar因为varchar是变长对于一些数据类型可以自动补充

 -- 时间型
  数据类型    字节数            格式                    备注
   date        3           yyyy-MM-dd				存储日期
   time        3			HH:mm:ss				时分秒
   year        1			yyyy					年
   datetime    8			yyyy-MM-dd HH:mm:ss		日期+时间
   timestamp   4			yyyy-MM-dd HH:mm:ss		日期+时间(时间戳)
例题:创建一个基本的学生表
CREATE TABLE student (
                    id tinyint(5)  auto_increment  default null comment '学生学号',
                    name varchar(20) default null comment '学生姓名',
                    age  tinyint  default null comment '学生年龄',
                    class varchar(20) default null comment '学生班级',
                    sex char(5) not null comment '学生性别',
                    addr varchar()20 null comment '学生家庭地址'
                    unique key (id)
                    )engine=innodb charset=utf8;;

八、查看数据库中的所有表

show tables;

九、查看表结构:

desc 表名;

十、查看创建表的sql语句

show create table 表名;

十一、数据库必备知识-----表的维护与删除

修改表名
rename table oldtable to newtable; 
给表添加一列
alter table 表名 add 列名 类型
-- alter table student add addr varchar(20);
修改表的类型
alter table 表名 modify 列名 新类型;
-- alter table student modify addr char(20);
修改列的名
alter table 表名 change 旧列名 新列名 类型;
-- alter table student change addr addrs char(20);
删除列
alter table 表名 change drop 列名;
修改字符集
alter table 表名 character set 字符集;
删除表
drop table 表名;

十二、表的新增

普通插入
insert into 表名(字段名) values (字段对应的值);
-- insert into student(addr,age) values('山东','18');

insert into 表名 values (所有字段对应的值)
-- 插入多个值
insert into 表名  (字段名) values (对应值1),(对应值2),(对应值3);   
--一次性插入多个数据
蠕虫复制(将一张表的数据复制到另一张表中)
insert into1 select * from2;
--将表2复制到表1里面去

insert into 表名1(字段名1,字段名2select 字段名1,字段名2 from 表名2;
-- 部分复制
建表复制
creat table1 as select 字段1,字段2 from 表名2

十三、表数据的修改以及删除

修改
update 表名 set 字段名=where 字段名=---将where后面的修改成前面的
删除
delete from 表名 where 字段名=;
--删除字段

truncate table 表名;
--truncate 翻译为截断 == 删除

delete from 表名;
drop table 表名;

三者区别:
       delele会把删除的操作记录给记录起来,以便数据回退,不会释放空间,而且不会删除定义。
       truncate不会记录删除操作,会把表占用的空间恢复到最初,不会删除定义
       drop会删除整张表,释放表占用的空间。

十四、关于表相关的查询语句(DQL)

where查询

简单查询
select * 
from 表名;
精确查询
select * from 表名where 字段=;
模糊查询
select * from employee  where ename like '林%';
-- %A 代表查询逸A结尾的字符串;A%代表A开头的字符串
范围查询
select * fromwhere 字段 between1 and2
离散查询
select * from 表名 where 字段 in ('猴子','林俊杰','小红','小胡');  
清除重复值
select distinct(job) from 表名;
-- distinct 去重
统计查询(聚合函数):
       count(code)或者count(*)
        select count(*) from employee;
        select count(ename) from employee;
        
       sum()  计算总和 
        select sum(sal) from employee;
        
       max()    计算最大值
        select * from employee where sal= (select  max(sal) from employee);
        
       avg()   计算平均值
        select avg(sal) from employee;
        
       min()   计算最低值
        select * from employee where sal= (select  min(sal) from employee);
        
       concat函数: 起到连接作用
        select concat(ename,' 是 ',job) as aaaa from employee;

group by分组查询

作用:把行 按 字段 分组
语法:group by 列1,列2…列N
适用场合:常用于统计场合,一般和聚合函数连用

 select deptnu,count(*) from employee group by deptnu;

having条件查询

作用:对查询的结果进行筛选操作
语法:having 条件 或者 having 聚合函数 条件
适用场合:一般跟在group by之后

order by排序查询

desc 降序默认升序
select * from employee order by sal;-- 升序

limit限制查询

limit n,m n:代表起始条数值,不写默认为0;m代表:取出的条数

exists型子查询

exists子查询,如果exists后的内层查询能查出数据,则返回 TRUE 表示存在;为空则返回 FLASE则不存在

select * from 表名 a where exists (select 1 from 表名2 where 条件);
-- 如果后面的表true则返回

左连接查询与右连接查询(外连接)

左连接关键字:left join 表名 on 条件 / left outer 表名 join on 条件
右连接关键字:right join 表名 on 条件/ right outer 表名 join on 条件
注:左连接,左边的表会全显示出来,右面的只会显示符合条件的。
    右查询同理

内连接查询与联合查询

内连接:获取两个表中字段匹配关系的记录
主要语法:INNER JOIN 表名 ON 条件;

eg:想查出员工张飞的所在部门的地址
    select a.addr  from dept a inner join employee b on a.deptnu=b.deptnu and b.ename='张飞';
    
    select a.addr from dept a,employee b where a.deptnu=b.deptnu and b.ename='张飞';
联合查询
... UNION ... (去除重复) 主要语法2:... UNION ALL ...(不去重复)

注意事项:

(1)两个select语句的查询结果的“字段数”必须一致;

(2)通常,也应该让两个查询语句的字段类型具有一致性;

(3)也可以联合更多的查询结果;

(4)用到order by排序时,需要加上limit(加上最大条数就行),需要对子句用括号括起来

				对销售员的工资从低到高排序,而文员的工资从高到低排序
 (select * from employee a where a.job = '销售员'  order by a.sal limit 999999 ) 
 union 
(select * from employee b where b.job = '文员' order by b.sal desc limit 999999);
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值