【千锋Python2205班10.31笔记-day01-SQL基础语法(二阶段)】

一、SQL(结构化查询语言) —> DDL(数据定义语言)—>

 create / drop / alter

1.查看所有数据库

show databases;

2.创建数据库

create database hrs default charset utf8mb4;

3. 查看所有字符集和排序规则

show charset;
show collation;

4.删除数据库

drop database if exists hrs;

5. 切换数据库

use hrs;

1)创建表

create table tb_dept
(
    dno integer not null comment '编号', 
    dname varchar(20) not null comment '名称',
    dlocation varchar(20) not null comment '所在地',
    primary key (dno)
) engine=innodb comment='部门表';

2)查看所有表

show tables;

3)查看表结构

desc tb_dept;

4)删除表

drop table if exists tb_dept;

5)修改表

alter table tb_dept add column dest date comment '成立日期';

alter table tb_dept drop column dest;

alter table tb_dept modify column dlocation varchar(50) not null;

alter table tb_dept change column dlocation dloc varchar(200) not null comment '所在地';

alter table tb_dept add constraint uk_dept_dname unique (dname);

alter table tb_dept drop constraint uk_dept_dname;

alter table tb_dept add constraint ck_dept_dloc check (char_length(dloc) >= 2);

alter table tb_dept drop constraint ck_dept_dloc;

alter table tb_dept rename to department;

二、数据类型

1. 整数

* tinyint ---> 1个字节 ---> -128 ~ 127
        * smallint ---> 2个字节 ---> -32768 ~ 32767
        integer / int ---> 4个字节 ---> -2^31 ~ 2^31-1
    ~ int unsigned ---> 无符号整数 ---> 0 ~ 2^32-1
    ~ int(4) zerofill ---> 1 ---> 0001
        bigint ---> 8个字节 ---> -2^63 ~ 2^63-1
    ~ bigint unsigned ---> 无符号大整数 ---> 0 ~ 2^64-1

2.小数

* float
* double
  decimal(M,N) ---> M 有效数字的位数 ---> 65
                  N 小数点后面的有效数字的位数 ---> 30

3.字符串

* char
varchar ---> utf8mb4 ---> 65535 / 4 ---> 15327

4.日期和时间

date
time
datetime

* timestamp ---> 记录现在距离1970年1月1日0时0分0秒过去了多少时间
            ---> 底层就是一个整数(有溢出风险)---> 2038年问题

Y2K ---> 千年虫问题

5.其他

* boolean ---> tinyint ---> 0 / 非0
* enum ---> MySQL方言
* longtext ---> 4G
* longblob ---> 4G

注意:不要表的字段中放很大的二进制数据或文本数据(给文件路径即可)

三、SQL(结构化查询语言)—> DML(数据操作语言)

1.insert

insert into department (dno, dname, dloc) values (10, '财务部', '北京');
    insert into department (dno, dname, dloc) values
(20, '研发1部', '成都'),
(30, '销售1部', '上海'),
(40, '研发2部', '深圳'),
(50, '销售2部', '长沙');

2.delete

delete from department where dno = 50;
delete from department where dno in (30, 40);

3.update

update department set dname = '销售3部', dloc = '武汉' where dno = 30;

4.select

select * from department;

作业:
1. 创建员工表 (工号、姓名、性别、出生日期、入职日期、月薪、职位)
2. 思考员工表跟部门表之间又没有关系?如果有是什么关系?如何建立两张表的关系?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值