MySQL学习笔记

一、使用客户端连接数据库

mysql.exe        -h127.0.0.1        -P3306        -uroot        -p

 -h   host   要连接的服务器,自己电脑  localhost/127.0.0.1

   -P   port   端口,MySQL占用3306端口

   -u   user   用户名,MySQL提供了管理员用户root

   -p   password   密码,xampp下root的密码默认为空

简写:mysql  -uroot

二、 常用的管理命令

  quit;   退出服务器的连接

  show  databases;   显示所有的数据库

  use   数据库名称;   进入到指定的数据库

  show  tables;   显示当前数据库中所有的数据表

  desc  数据表名称;   描述指定的数据表结构

三、常用的SQL命令

1.丢弃数据库,如果存在

   drop  database  if  exists  数据库名称;

 2.创建新的数据库

   create  database  数据库名称;

 3.进入数据库

   use  数据库名称;

 4.创建数据表

   create  table  数据表名称(

     列名称  列类型,

     ....

   );

 5.插入数据

   insert  into  数据表名称  values(一组值,...);

 6.查询数据

   select * from  数据表名称;

 7.修改数据

   update  数据表名称  set  列名称=值, ...  where  条件;

 8.删除数据

   delete  from  数据表名称  where  条件;

四、解决中文乱码

设置客户端连接服务器端的编码UTF-8

set names utf8

设置服务器端创建数据库,存储字符的编码为UTF-8

create database 数据库名称  charset=utf8;

五、列类型

1.数值型

tinyint 微整型,占1个字节,范围-128~127

smallint 小整型,占2个字节,范围-32768~32767

int 整型,占4个字节,范围-2147483648~2147483647

bigint 大整型,占8个字节,范围很大

decimal(M, D) 定点小数,小数点不会发生变化,M表示总的有效位数,D表示小数点后的位数

boolean 布尔型,只有两个值,分别是true/false,用于存储只有两个值的数据,例如:性别、是否已婚、是否为会员...

MySQL中没有真正的布尔型,boolean最终转换为tinyint,true转为1,false转为0

 2.日期时间型

date 日期型 '2023-05-04'

time 时间型 '14:38:50'

datetime 日期时间型 '2023-05-04 14:38:50'

3.字符串型

varchar(M) 变长字符串,不会产生空间浪费,数据操作速度相对慢,常用于存储变化长度的数据,例如:标题、姓名、文章详情... M的最大值是65535

char(M) 定长字符串,可能会出现空间浪费,数据操作速度相对快,常用于存储固定长度的数据,例如:手机号码、身份证号码... M的最大值是255

text(M) 大型变长字符串,M最大值是2GB

varchar(5)char(5)
aa\0a\0\0\0\0
abab\0ab\0\0\0
一二三一二三\0一二三\0\0

如果要存储文件的话,都是存储文件的路径

使用合理的列类型

create table t1 (
	id int,
    name varchar(8),
    sex boolean,
    phone char(11),
    salary  decimal(7,2),   -- 99999.99
    birthday date
);

六、列约束

create table t1(
	id int 列约束
);

1.主键约束

primary key : 声明了主键约束的列,不允许插入重复的值;一个表中只能使用一次主键约束,通常加在编号列,会加快数据的查询速度

null 空,表示一个暂时无法确定的值,例如:暂时无法确定商品的名称、价格;无法确定一个员工的手机号码、家庭住址...

主键约束的列禁止插入null

2.非空约束

not null:声明了非空约束的列,禁止插入null

练习:给商品表product的价格和上市时间添加非空约束,并插入值测试。

3.唯一约束

unique:声明了唯一约束的列,禁止插入重复的值,允许插入null,甚至多个null

主键约束 = 唯一约束 + 非空约束

4.默认值约束

default

在插入一条数据的时候,在不给值的情况下,会使用默认值

(1) 设置默认值

通过default关键字设置

create table news(
	origin varchar(8)  default '达内'
);

(2) 应用默认值

①插入值的位置直接使用default即可

insert into news values(1,... default);

②给指定的列提供值,没有出现的列会自动应用默认值

insert into news(列名称1,类名称2,..) values(值1,值2,..);

5.检查约束

check,也称为自定义约束,用户可以指定约束条件

create table student(
	score tinyint check(score>=0 && score<=100)
);

MySQL不支持检查约束,认为会严重影响数据的插入速度,后期是通过JS来进行验证。

6.外键约束

声明了外键约束的列,插入的值必须在另一个表的主键列中出现过,目的是为了让两个表建立关联。

外键要和对应的主键,列类型保持一致。

foreign key(外键列)  references  另一个表(主键列)

二、自增列

auto_increment:自动增长,声明了自增列,插入数据的时候只需要赋值为null,就会自动获取最大值,然后加1插入。

自增列必须添加在主键列

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值