mysql数据库笔记

MySql数据库笔记

1.卸载:

1.停止mysql服务

2.进入控制面板->卸载

3.进入program files目录删除->mysql子目录(安装的参与文件)

4.进入programData目录(默认隐藏)删除mysql子目录->(数据文件所在目录)

2.Mysql基本命令:

从控制台进入数据库,并对其进行操作在安装(在安装数据库时设置的账号:root

密码:123456)

登录到mysql命令行客户端(cmd) :mysql -h localhost -uroot -p123456

修改密码(cmd) :mysqladmin -uroot -p123456 password root

在系统命令行中创建数据库实例 :mysqladmin -uroot -proot create mydb

在系统命令行中删除数据库实例 :mysqladmin -uroot -proot drop mydb

显示mysql数据库的实例 :show databases;

创建新的数据库实例:create database mydb;

使用实例:use mydb;

显示实例中的所有表:show tables;

查看指定表结构:desc user;

从mysql命令行客户端退出:exit/quit

放弃正在输入的命令,进入下一次输入:\c[lear]

打开命令列表:\h[elp]

3.SQL语句入门:

DDL语句(数据定义语句)

创建表,删除表,修改表结构都称之为DDL;一般包含这些命令:create、drop、alter、change、modify、add等。

创建一张表:

create table student(
    sno int,
    sname varchar(10),
    age int,
    sex char(2)
);

向表中新增列(向表student中新增一个birth列,类型为date):alter table student add birth date;

删除列(删除表student中的age列):alter table student drop age;

修改表名称:rename table student to tb_stu;

修改列名称:alter table stu change birth birthday date;

修改列类型:alter table product modify price decimal(7,2);

向表中的指定字段添加约束:alter table stu add constraint primary key(sno);

删除表:drop table stu;

DML语句(数据操作语句)

新增数据,删除数据,修改数据,查询数据;包含的命令有: insert、delete、update、select等。

添加数据到表中:insert into 表名称(列名...) values(值...)

向所有列插入值:insert into emp values(1001,'易大师',3500.06,'2018-10-01');

向指定列插入值:insert into emp(ename,sal,hiredate) values('马尔咋哈',8500.09,now());

向表中一次性插入多行记录

insert into emp(ename,sal,hiredate) values('波比',4398.67,'2018-12-12'),
                                       ('艾希',9566.8,'2017-11-11'),
                                       ('墨菲特',4300,'2019-01-22');

查询所有数据:select 列名 from 表名称 [附加条件],例:select * from emp;

修改表数据:update 表名称 set 列名1=新值1,列名2,=新值2... where 条件,例:update emp set sal=3501.06 where eno=1001;

删除记录:delete from 表名称 where 条件,例:delete from emp where eno=1003;

DCL语句(数据控制语句)

数据控制语句,一般由数据库管理员(DBA),使用这些命令,操作数据库相关的权限,比如授权,解除权限,常见命令有: grant、revoke等

4.Mysql数据类型:

数值类型

类型名称长度
bit1bit
tinyint1字节
smallint2字节
mediumint3字节
int4字节
bigint8字节
float4字节
double8字节
decimal(m,n)m个字节,小数点有n位

auto_increment

设置列自动递增,一般只能对标识列(主键列)设置,并且必须是整数型类型。

unsigned

设置列为无符号列,即列值不允许为负数

zerofill

设置前导填充,当数值长度未达到定义长度时,前面补零填充宽度

字符串类型

类型名描述
char(m)定长字符串
varchar(m)可变长度字符串
tinyblob二进制大对象
smallblob二进制大对象
mediumblob二进制大对象
longblob二进制大对象(2G)
tinytext大文本对象
smalltext大文本对象
mediumtext大文本对象
longtext大文本对象(2G)
enum枚举(只能从枚举中选择一个作为值)
set集合(功能同上,只能包含64个元素)

char和varchar的区别:

char:是一个定长字符串,取值范围是0~255之间(根据数据库的编码来决定),一旦使用char类型定义列,则在添加数据时无论数据的实际大小是多大,始终会见申请的空间占满,不够使用空格填充。因此char类型一般用于长度确定的数据列(比如:手机号,性别,身份证号等)。

varchar:是一个可变长度的字符串,取值范围是0~65535之间(根据数据库的编码来决定),在定义字符串列时,如果使用varchar,则在添加数据到列中时,系统会自动根据添加的数据长度申请空间,因此从存储角度来说varchar更节省空间,效率实际低于char;因此varchar一般用于长度不确定的字符串列

字符串类型占据的空间跟编码有关。UTF-8占据3个字节,GBK占据2字节

日期类型

类型名描述
time表示时间(3字节)
date表示日期(3字节)
datetime表示日期时间(8字节)
timestamp时间戳(精确时间)(4字节)
year表示年(1字节)

使用timestamp类型时,可以指定默认值为CURRENT_TIMESTAMP,但是一张表中只允许一个timestamp列的默认值为CURRENT_TIMESTAMP.

5.mysql之SQL查询:

单表查询:select * from ...

范围:> 、 < 、>=、<= ; between x and y ;​ and :并且 ;or:或者

指定字段名查询:select * from ... *:表示所有字段 若要显示指定的字段,则可将*用字段名代替,多个字段名用逗号隔开

别名

as:用于查询时给字段或者表起别名,别名只在当前这次查询有效(as可以省略不写) select name as 姓名,salary as 工资 from emp;

排序:order by默认为升序排序(asc表示升序,可以不写) ;select * from emp order by salary; ​ desc(表示降序排序 );select * from emp order by salary desc;

分组:group by;每一组只会显示其中一条记录 select * from emp group by dept_id;

having:与group by结合使用,用于将分组后的结果进一步过滤;having后面可以使用聚合函数

limit(可用于分页)

limit[m,n]:limit可以限制查询后的返回记录数目

limit m : 表示查询的结果从第一条开始,返回m条记录:select * from emp where id <15 limit 5;

limit m,n : 表示查询的结果从偏移量(偏移量从0开始)为m的开始,往后偏移n条记录:select * from emp where id <15 limit 3,5;

like 模糊查询

%:是一个通配符,表示匹配人意长度的字符串

_:通配符,匹配长度为1的任意字符

'a%':以a开头,后面任意字符;

'%a':任意长度字符开头,以a结尾;

'%a%':任意长度字符开头和结尾,中间为a.

聚合函数:聚合函数是mysql中内置的一些函数,可以对结果进行相应的处理

count(*) : 可以获取查询的结果记录条数

max() : 获取最大值

min() : 获取最小值

avg():获取平均值

sum() : 指定字段求和

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值