mysql数据库和表操作(DDL&DML)

数据库类型

1、关系型数据库:以2维表的形式来存储数据
mysql oracle sqlserver db2
2、非关系型数据库:
NoSQL redis MongoDB
类似于key键-value值对存储
特点:查询数据非常快==大数据

数据库的构成

基本构成:数据库、数据库表、数据
在这里插入图片描述

SQL语言和分类

SQL (Structured Query Language)结构化查询语言,操作数据库语句,非常方便。
SQL语言是专门操作数据库的语言,所有数据库都支持SQL语言
但是SQL语言针对不同的数据库是有不同的特点的。
SQL要求:
SQL语句可以单行或多行书写,以分号结尾;
可以用空格和缩进来来增强语句的可读性;
关键字不区别大小写,建议关键字用大写
/*多行注释/*/–单行注释(单行注释需要再一后面打个空格)#也是单行注释

  • SQL语言分类
    DDL(重点):数据定义语言
    创建数据库,创建表
    DML(次重点):数据操作语言
    数据插入/更新/删除
    DCL(了解)︰数据控制语言
    用户权限,表权限…
    DQL(重点):数据查询语言
    数据查询

DDL:数据定义语言

  • 数据库基本操作
    创建数据库 并且设置字符集
    注意:使用cmd窗口登录数据库操作的时候,必须以;号结束输入
create database 数据库名 character set 字符集
	 create database student_test2 character set utf8;

显示数据库

show databases

使用数据库

use 数据库名
use student_test2;

删除数据库

drop database 数据库名;
	drop database student_test2;
  • 常用的数据类型
    1、数值类型
    tinyint:小整数类型(-128~127之间)
    int:大整数类型
    float:单精度浮点型:float(5,2):表示最多5位,小数位保留2位(999.99)
    double:双精度浮点型:double(5,2):表示最多5位,小数位保留2位
    decimal:浮点型:一般用在需要精确的计算方面,比如:钱;不去失去精度
    unsigned:表示无符号:去除掉了负数,从0开始,范围扩大了1倍
    2、字符类型
    char:固定长度的字符串类型:char(5):表示能存储5个长度的数据,如果存了2个,剩下的3个长度用空格代替。
    varchar:可变长度的字符串类型:varchar(5):表示能够存储5个长度的数据,如果存了2个,剩下的3个长度释放。
    nchar:n表示unicode数据。它的其他规则跟char一样,nchar比char同样长度的
    blob:存储2进制数据:图片视频
    text:长文本数据:大的文本
    3、日期和时间类型
    date:yyyy-MM-dd:表示年月日
    time:HH:mm:ss:表示时分秒
    datetime:yyyy-MM-dd HH:mm:ss:表示年月日时分秒:必须手动输入日期
    timestamp:yyyy-MM-dd HH:mm:ss:表示年月日时分秒的时间戳:可以按照服务器时间自动插入
    注:字符串类型和日期类型插入时需要加单引号

  • 表的约束
    在创建表的时候,需要对表中的数据进行约束,也就是说,表的数据不能乱写。。。
    1、主键约束:primary key
    表示唯一确定表中一条记录,就叫做逐渐约束。
    约束的字段就叫做主键字段。
    主键自动增长:auto_increment :表示主键不需要我们维护,数据库自动维护增加
    特点:主键不能重复,主键不能为空,一个表中只能有一个主键约束(包括了联合主键的情况)
    2、非空约束:not null
    表示该字段必须要有值,不能是空的
    3、检查约束
    mysql不支持检查约束,Oracle和SQL server支持
    4、唯一性约束:unique
    表示该字段不能重复,但是可以有一个null值
    特点:字段不能重复、可以有一个null值、多个字段都可以是唯一性约束
    5、默认值:default
    表示给字段一个默认值
    6、主外键约束:foreign key
    把主键表叫做主表
    把外键表叫做从表
    从表的外键字段的数据必须来源于主表的主键字段

  • 创建表

USE student_test;
CREATE TABLE course(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(50)
)AUTO_INCREMENT=2001;#自动增长

CREATE TABLE score(
sid INT PRIMARY KEY AUTO_INCREMENT,
stu INT,
cid INT,
score INT,
FOREIGN KEY(stu) REFERENCES student(stu),#外键名称
FOREIGN KEY(cid) REFERENCES course(cid)
);
  • 查看表
    1、查看当前数据库中所有表名称
show tables;

2、查看表的结构

desc 表名;

3、查看表的创建语句

show create table 表名;
  • 修改表
    在这里插入图片描述
  • 删除表
drop table 表名;

DML:数据操纵语言

  • 插入数据
    在这里插入图片描述
INSERT INTO student (snae,sex,age,birth,email,class) VALUES
('Jim','男',16,'1997-7-7','222@qq.com','1班'),('Rose','女',14,'1999-7-7','333@qq.com','1班');
  • 更新数据
update 表名 set=新值,2=新值2 ...[where 条件]
UPDATE student SET sex='女' WHERE stu=1002;

  • 删除数据
delete from 表名 [where 条件];--可以删除部分数据,数据可以回滚
truncate table 表名; --永久删除全部数据,无法回滚
DELETE FROM student WHERE stu=1002;

创建学生表、课程表、成绩表

USE student_test;
CREATE TABLE course(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(50)
)AUTO_INCREMENT=2001;

CREATE TABLE score(
sid INT PRIMARY KEY AUTO_INCREMENT,
stu INT,
cid INT,
score INT,
FOREIGN KEY(stu) REFERENCES student(stu),
FOREIGN KEY(cid) REFERENCES course(cid)
);
DROP TABLE score;
CREATE TABLE score(
sid INT PRIMARY KEY AUTO_INCREMENT,
stu INT,
cid INT,
score INT,
FOREIGN KEY(stu) REFERENCES student(stu),
FOREIGN KEY(cid) REFERENCES course(cid)
)AUTO_INCREMENT=3001;

DESC student;
INSERT INTO student (snae,sex,age,birth,email,class) VALUES('tom','0',16,'1997-7-7','111@qq.com','1班');
INSERT INTO student (snae,sex,age,birth,email,class) VALUES
('Jim','男',16,'1997-7-7','222@qq.com','1班'),('Rose','女',14,'1999-7-7','333@qq.com','1班');

UPDATE student SET sex='女' WHERE stu=1002;
DELETE FROM student WHERE stu=1002;
DESC course;
INSERT INTO course (cname)VALUES ('数学');
DESC score;
INSERT INTO score (stu,cid,score) VALUES(1001,2001,90),
(1003,2001,92);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值