4月4日课后总结

4/4课后总结

针对记录的SQL语句

# 首先得有库和表,才有记录
# 记录就是表里面的一行一行的数据
库>>>表>>>记录

1. 增加记录
	insert into t1 values(1,'zhansgan',18);  # 括号里面填对应的数据,注意格式
    insert into t2 values(1,'zhangsan',18),(2,'lisi',18),(3,'laoba',18);  # 增加多行数据
    insert into t1(id,name) values(1,'mazi');  # 指定增加数据的话在表名后面加括号
2. 查看
	select *from t1;
3. 改
	update t1 set name = 'gouzi' where id = 1;  # 修改id是1的人的姓名
    # 注意:修改记录的时候一定要有where条件
    update t1 set name = 'shagou';  # 这个是修改全表的名字了
4. 删除
	delete from t1 where name = 'lisi';  # 删除叫李四的人
    delete from t1; # 删除全表

配置文件

"""
	复制my-default.ini文件
	改名为my.ini文件
	修改配置文件
	重启服务端
"""

存储引擎(面试用)

"""
	存储引擎其实就是数据库中存储数据的方式
	可以用 show engines;查看全部的存储引擎
	在Mysql中存在9种数据引擎,我们只需要掌握其中两种
"""
1. MyISAM
	# MySQL5.5及之前的版本默认的存储引擎,它相对InnoDB的存取速度更快了,但是,相对InnoDB数据不够安全。不支持事物,行锁,外键,支持表锁
2. InnoDB
	# MySQL5.6及之后的版本默认的存储引擎,它相对MyISAM的存取速度更慢了,但是,相对MyISAM数据更安全。支持事物,行锁,外键,不支持表锁
3. MEMORY
	# 数据存放在内存中,一旦断电,数据立马丢失,重启服务端数据就没了,不能长期保存数据

create table t1(id int) engine = MyISAM;
create table t2(id int) engine = InnoDB;
create table t3(id int) engine = MEMORY;

'''
不同的存储引擎的区别:
	1. MyISAM引擎产生3个文件
	  .frm  >>> 表结构
	  .MYD  >>> 存数据
	  .MYI  >>> 存索引   >>> 目录
    2. InnoDB 产生2个文件
    	.frm  >>> 表结构
    	.ibd  >>> 表结构+数据
  	3. MEMORY产生1个文件
  		.frm  >>> 表结构
'''

MySQL的基本数据类型

1. 整型
	# 根据存储数据大小范围分为:tinyint<smallint<int<bigint
    tinyint 一个字节>>>11111111>>>0~255>>>-128~127
    smallint:2个字节 ---->16位  ------> 0-32 768
    int:4个字节
    bigint:8个字节
    create table t1(id tinyint);
    create table t1(id smallint);
    create table t1(id int);
    create table t1(id bigint);
    # 整型默认情况下都带符号
2. 浮点型
	# 小数,根据精确度分为float double decimal
    float(255,30);
    double(255,30);
    decimal(65,30);  # 括号内分别是总共位数和小数位数
    
    create table t1(id float(255,30));
    create table t1(id double(255,30));
    create table t1(id decimal(65,30));
3. 字符串
	1. char(4)  # 定长,最多4位,超过报错,不够空格填充
    2. varchar(4)  # 不定长,有几位存几位
    create table t1(name char(4));
    create table t1(name varchar(4));
    # 在MySQL5.6之前不会报错,需要设置参数才会报错
    show variables like '%mode%'; # 模糊查询
    """
    	上述的修改方式有两种:
    		1.配置文件修改---->一定要重启服务端
        	2. 临时修改
        		set global sql_mode='STRICT_TRANS_TABLES';
        		退出客户端,从新进
    """
    # 研究定长和可变长
    select char_length(name) from t2; # 普通模式不行,需要先设置好模式
    set global sql_mode='STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH';
4. 日期
	date(显示年月日) datetime(年月日时分秒) time(时分秒) year(年)
    create table t13 (reg_time date,
                      login_time datetime,
                      logout_time time,
                      birth_day year
                     );
    insert into t13 values(1, '2023-04-04','2023-04-04 11:11:11', '11:11:11', 1995);  # 用的最多的就是datetime
5. 枚举与集合
	枚举:多选一 enum()
    create table t4 ( 
        gender enum('male','female','other')
                     );
    insert into t4 values('male');
    # insert into t4 values('xxxx');  如果是不存在的会报错
    集合:多选多 set()
      create table t5 ( 
          hobby set('read','music','tangtou','xijio','anmo')
                     );
    insert into t5 values('read,anmo');
    # insert into t5 values('read,anmo, xxxx');  如果有不存在的就会报错

整型中括号内的数字作用

字符串中括号中得数字代表的就是:限制存储的长度
create table t1(id int(4) zero fill);
insert into t1 values(99);  # 0099
"""整型中括号内的数字代表的不是长度,代表的是展示的位数"""

创建表的完整语法

CREATE TABLE `t15` (
  `id` int(11) DEFAULT NULL,
  `hobby` set('read','music','tangtou','xijio','anmo') 
) 

CREATE TABLE `t15` (
  字段1 字段类型1 约束条件1 约束条件1 约束条件1,
  字段2 字段类型2 约束条件1 约束条件1 约束条件1,
  字段3 字段类型3 约束条件1 约束条件1 约束条件1,
  字段4 字段类型4 约束条件1 约束条件1 约束条件1
);

"""
	1. 字段和字段类型是必须要写的
	2. 约束条件是可选的,并且,约束条件可以有多个,空格隔开
	3. 最后一条数据的逗号不能加
"""

约束条件

在数据类型的基础上在添加额外的条件
id int unsigned
unsigned
zerofill
not null
default
unique
primary key # 主键
posted @ 2023-04-04 19:58  橘子熊何妨  阅读(17)  评论(0)    收藏  举报