MySQL数据库

MySQL数据库

学生学号 :char类型

身份证号码:char (18)

教师编号:char (4)

成绩 :decimal

登记时间:datatime now():表示当前时间

登录密码的长度为:41位

unsigned:只针对数值型

default:默认值,缺省约束

主键约束:primary key 字段不能为空且不能重复

唯一键:unique 字段可以为空值,但是不能重复

primary key(id,username)–组合主键(将id,name组合在一起成为表的主键)

desc A:查看指定表的结构

show create table A:查看指定表定义语句

2、自动递增

auto_increment :自动递增 是数据的一种属性,只适于数字类型

一个表只能有一个字段使用auto_increment

engine:存储引擎

将字段设置成 auto_increment 是需要将其设置成主键或者主键的一部分

3、enum,set的应用

1、enum:枚举字符串(多选一)

select left(‘abc’,2); ab

select rigth(‘abc’,2) ; bc

select substring(‘abc’,2); bc

select substring(‘abc’,2,1);

ü enum的选项对应一个数字,依次是1,2,3,4,5…,最多有65535个选项

如:enum(‘a’,’b’,’c’),如果某行的对应值为2,则选中了“b”

4、另类的insert

1、一条语句插入多条数据

语法:insert into 表名(字段列表) values (值列表1),(值列表2)

2、insert…select (须创建目标表)

语法:insert into 表名 [(字段列表)] select

字段列表 from 表名;

insert into g(username) select username from A;

注意:两处字段列表数量必须一致,且数据类型能兼容

3、create…select …(插入数据前自动根据源表所选字段构建目标表)

语法:create tabel 表名 select 字段列表 from 表名;
create table cc select username from A;

5、数据表的更改

修改数据对象:alter

对以存在的表进行结构修改

添加字段:为表A添加用户密码字段

userpassword varchar(20) not null

alter table A

​ add userpassword varchar(20) not null ;

更改字段属性:将密码字段长度改为30

alter table A

erpassword varchar(30) not null;

删除字段:将字段userpassword1删除

alter table A drop userpassword1;

6、约束

1、数据完整性:是指储存在数据中的数据的一致性和正确性。
2、约束是通过限制列中的数据,行中的数据和表之间数据来保证数据完整性

create table B(
id bigint unsigned auto_increment primary key,
no bigint unsigned
#构建外键字段
constraint fk_no_id foreign key(no) references A(id)
#在当前表no字段上构建引用于表A字段id的名为fk_no_id的外键
);

为表A的字段a构建主键

alter table A

add constraint pk_a primary key(a);# pk_a是主键约束名称

为表A的字段aa构建唯一键

alter table A

add constraint un_aa unique(aa);# un_aa是唯一键约束名称

为表B的字段ba构建外键(引用于表A的字段a)

alter table B

add constraint fk_ba_a foreign key(ba) references A(a);# fk_ba_a是外键名称

删除表A的主键

alter table A

drop primary key

删除表A字段aa的唯一键(un_aa)

alter table A

drop index un_aa;

删除表B字段ba的外键(fk_ba_a)

alter table B

drop foreign key fk_ba_a;

7、删除语句

drop table a,b,c,d :删除多个数据表

drop database C :删除数据库

删除数据的语法:

delete from 表名 [where 条件表达式]

在A表中id为2的数据进行删除

delete from A where id=3;

delete from B where id=3;

说明上边语句不能直接删除,原因是B表中的no字段有引用A id 为3的值

解决办法:

1、先删除从表对应数据,再删除主表数据

2、构建外键引用时,设置级联操作

3、将外键临时取消作用或删除外键引用

delete from B where id=3; 先删除从表数据

delete from A where id=3; 再删除主表数据

删除约束 (实质就是删除表结构)

删除表B的名为fk_no_id的外键

alter table B

drop foreign key fk_no_id;

删除外键约束的语法是:

尝试删表A的主键以及唯一键,并总结语法

alter table A drop primary key;

如果该主键对应的字段为自增字段,则不能删除主键约束。

alter table A drop index username;

delete删除
1、删除一个表里所有数据

delete from sinfo; 不仅删除数据,存储数据的对象都没了。

truncate table sinfo;

drop table sinfo;

----truncate属于DDL

语法:truncate table 表名;

任务:delete和truncate 的区别
1、删除教师年龄超过60岁的数据信息(DML—delete)

delete from teachers where tAge>60;

delete from teachers where tAge>=30 and tAge<=60; #包含边界值

delete from teachers where tAge not between 30 and 61;

2、删除考试分数为80或90或100的数据

delete from elogs where elScore =80 or elScore =90 or elScore=100;

delete from elogs where elScore in(80,90,100);

3、删除在2019年度登记选修的所有数据信息

delete from elogs where elDate>=‘2019-01-01 00:00:00’ and elDate<=‘2019-12-31 23:59:59’

delete from elogs where elDatebetween ‘2019-01-01 00:00:00’ and ‘2019-12-31 23:59:59’

select now(); select year(now());

select year(elDate) from elogs;

delete from student where year(passwd)=‘2019’;

4、删除姓张的老师信息

方法一:模糊查询:like字句、通配符(%:零个或多个任意字符、_😃

delete from Teachers where tName like ‘张%’;

方法二:使用截取字符的方式

delete from Teachers where left(tName,1)=‘张’

数学函数、字符串处理函数、日期和时间函数、其他函数

delete与truncate的区别

n delete会记录日志,意味着删除后的数据还可以恢复,但是效率低。

n truncate不会记录日志,删除后的数据不能恢复,但是效率高;truncate不能用于有外键约束引用的表。

truncate应用场景:如果是开发一个应用程序,开始可能使用的是测试数据,当应用开发成功后,需要将真正的数据导入到数据表中,为了使自增主键从1开始,使用truncate操作数据表比较方便。

MySQL常用函数:https://www.cnblogs.com/progor/p/8832663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值