mysql-数据管理

常用数据库操作命令

连接数据库管理系统(DOS命令)

mysql -h数据库主机地址 -u用户名 -p密码
/*
SQL:(Structered Query Language)结构化查询语言
DDL:数据定义语言 关键字:CREATE DROP ALTER…
DML:数据操作语言(重要,今天) 关键字:INSERT UPDATE DELETE…
DQL:数据查询语言(SQL核心) 关键字:SELECT…
DCL:数据控制语言 关键字:GRANT COMMIT ROLLBACK…
*/

查看所有的数据库

SHOW DATABASES;

切换数据库

USE 数据库名;

数据库创建

CREATE DATABASE 数据库名;

可以使用反引号`来消除关键字的特殊含义

CREATE DATABASE user;

数据库删除

DROP DATABASE 数据库名;
DROP DATABASE user;

常用数据表操作命令

查看某个数据库下的所有表

SHOW TABLES;

查看数据表的定义/结构

DESCRIBE

DESC 表名;
DESC student;

创建数据表

CREATE TABLE [IF NOT EXISTS] 数据表名(
# 除了varchar和char 其他的类型都有默认长度值 可以不设置
字段/列名1 类型(长度) 约束/属性,
字段2…
)表约束/属性;

删除数据表

DROP TABLE 数据表名;

常用的字段/列的约束/属性

PRIMARY KEY 主键约束 设定某列作为数据的唯一标识列 非空唯一
NOT NULL 不允许为空
UNIQUE KEY 唯一
auto_increment 自动增长 可以设定步进值、初始值等 应用于主键列
DEFAULT ‘默认值’
UNSIGNED 无符号 数值不允许出现负数
ZEROFILL 自动补0
COMMENT ‘注释’

常用的列的类型

数值类型

TINYINT INT BIGINT DOUBLE

字符类型

VARCHAR 长度可变字符串
CHAR 不可变字符串
TEXT 适用于长文本

时间类型

DATETIME 普通的年月日时分秒
TIMESTAMP 时间戳 是毫秒值

– 【作业解析】

1.创建学生表和地区表

CREATE TABLE T1(
iid INT PRIMARY KEY auto_increment,
name VARCHAR(25) NOT NULL,
class VARCHAR(10) NOT NULL,
age INT,
city VARCHAR(30) DEFAULT ‘未知城市’
);

CREATE TABLE t2(
iid INT PRIMARY KEY auto_increment,
city VARCHAR(30),
province VARCHAR(20)
);

– 上节补充:表的修改操作

添加字段(属性test)

ALTER TABLE student ADD test INT NOT NULL;

修改字段[CHANGE可以修改字段名]

ALTER TABLE student CHANGE test test1 INT(12);

MODIFY 不能修改字段名

ALTER TABLE student MODIFY test1 INT(13);

删除字段信息

ALTER TABLE student DROP test1;

修改表名

ALTER TABLE student RENAME students;

[可能出现在笔试题] 添加主键

ALTER TABLE student ADD CONSTRAINT pk_student PRIMARY KEY student(studentNo);

添加外键:外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。外键的特点:从表外键的值是对主表外键的引用,从表外键类型,必须与主表主键类型一致

逻辑外键:(推荐) 你知道它们之间有关系 但是在使用时没有太多限制
物理外键:通过命令来强制指定关系 如果一方变动可能会对另一方产生影响
外键名fk_student_grade
外键的字段(gradeId)
另一张表名和字段名grade(gradeId);

ALTER TABLE student ADD CONSTRAINT fk_student_grade
FOREIGN KEY(gradeId)
REFERENCES grade(gradeId);

– DML语句
– 1.掌握MySQL的添加语句

语法:INSERT INTO 表名 [(字段名列表…)] VALUES(字段值列表);

练习1:给年级表添加数据

注意:

1.字段列表或值列表之间要以,号分隔

2.字段列表和值列表的内容要一一对应(类型、约束)

3.字段列表可以只写一张表的某几个字段,

但必须保证其他未设值的字段有默认值

INSERT INTO grade (gradeId,gradeName) VALUES(3,‘中班’);

4.如果字段列表省略了 那么值列表必须和数据表的所有列一一对应好。

INSERT INTO grade VALUES(NULL,‘一年级’);

练习2:给学生表添加信息

INSERT INTO student
(loginPwd, studentName, sex, gradeId, phone, address, bornDate)
VALUES(‘admin’,‘潘长江’,‘男’,1,‘110110110110’,‘玉渊潭’,‘2019-03-22’);

同时添加多条数据

语法:INSERT INTO 表名[(字段列表)] VALUES(值列表1),(值列表2),(值列表3)…;

INSERT INTO grade
(gradeName)
VALUES(‘二年级’),(‘三年级’),(‘四年级’);

(了解)添加多条语句

INSERT INTO grade
(gradeName)
SELECT ‘五年级’ UNION
SELECT ‘六年级’;

INSERT INTO student
(studentName,sex,gradeid,phone,address,email,bornDate)
VALUES(‘郭靖’,‘1’,‘1’,‘136232323’,
‘北京海定区中关村大街一号’,‘huojing@bdqn’,now()),
(‘李文华’,‘1’,‘2’,‘132623522’,‘河南洛阳’,
‘liwenhua@.bdqn.com’,‘2019-03-20’),
(‘李梅’,‘0’,‘3’,‘136232555’,‘上海’,‘limei@bdqn.cn’,‘1360-03-30’);

– 2.掌握MySQL的修改语句

语法:UPDATE 表名 SET 要修改的列名=新值,… [WHERE 条件];

练习1:给郭靖的年级增长一级

注意:如果有指定范围 必须要添加where条件语句 否则会出现全表更新

WHERE关键字后面需要接入条件表达式,可以写一个条件也可以接多个条件。

并且 and 或者 or 非 not

UPDATE student SET gradeId = gradeId + 1;

UPDATE
student
SET
gradeId = gradeId - 1
WHERE
studentName = ‘郭靖’;

练习2:修改编号为2的潘长江的信息 邮箱:panchangjiang@126.com 密码:caixukun

UPDATE
student
SET
email = ‘panchangjiang@126.com’,
loginPwd = ‘caixukun’
WHERE
studentNo = 2;

– 3.掌握MySQL的删除语句

语法:DELETE FROM 表名 [WHERE 条件]

不会清除自增序列(字段名还在)

DELETE FROM grade;

DELETE FROM grade WHERE gradeId = 12;

清空表数据 TRUNCATE [TABLE] 表名;

TRUNCATE grade;

DELETE和TRUNCATE的区别

相同点:都能清空表数据

不同点:DELETE 可以接上条件语句 而TRUNCATE只能清除全表。

DELETE删除数据不会影响自增序列 而TRUNCATE会清空自增序列

(了解)[事务] DELETE不会影响事务,而TRUNCATE会影响事务,会导致事务自动提交。个表---->子/从表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值