MySQL学习笔记

-MySQL的登录、访问、退出操作:

登录的命令:

mysql -hlocalhost -uroot -p

mysql:bin目录下的文件mysql.exe。mysql是MySQL的命令工具,是一个客户端软件,可以对任何主机的mysql服务(即后台运行的mysql)发起连接

-h:host主机名,后面跟要访问的数据库服务器的地址;如果登录的是本机可以省略

-u:user,用户名

-p:password,密码

mysql服务安装后,需要配置环境变量

退出:quit;、exit;、\q;

-SQL语言:

SQL语言分为五个部分:

-数据查询语言(Data Query Language,DDL):DDL主要用于数据的查询,其基本结构是勇士SELECT子句,FORM子句和WHERE子句的的组合来查询一条或多条数据。

-数据操作语言(Data Manipulation Language,DML)DML主要用于对数据库重的数据进行增加、修改和删除操作,其主要包括:

(1)、INSERT:增加数据

(2)、UPDATE:修改数据

(3)、DELETE:删除数据

-数据定义语言(Date Definition Language,DDL):DDL主要用于针对是数据库对象(数据库、表、索引、视图、触发器、存储过程、函数)进行创建、修改和删除,其主要包括:

(1)、CREATE:创建数据库对象

(2)、ALTER:修改数据库对象

(3)、DROP:删除数据库对象

-数据控语言(Data Control Language,DCL):DCL用来授予访问或回收访问 数据库的权限,主要包括:

(1)、GRANT:授予用户某种权限

(2)、REVOKE:回收授予的某种权限

-事务控制语言(Transaction Control Language,TCL):TCL用于数据库的事务管理,其主要包括:

(1)、START TRANSACTION:开启事务

(2)、COMMIT:提交事务

(3)、ROLLBACK:回收事务

(4)、SET TRANSACTION:设置事务的属性

delete和truncate的区别:

从两者的最终结果来看都是删除表中全部记录,但是两者的区别如下:

--1、DELETE为数据操作语言DML,TRUNCATE为数据定义语言DDL

--2、DELETE操作时将表中所有记录一条一条的删除直至删除完;TRUNCATE操作则是保留表的结构,重新创建这个表,所有的状态都相当于新表。因此TRUNCATE的效率更高

--3、DELETE操作可以回滚;TRUNCATE操作辉导致隐式提交,因此不能回滚

--4、DELETE操作执行成功后辉返回已删除的行数(如删除四行记录,则会显示“Affected rows:4”);截断操作不会返回已删除的行数,通常时“Affected rows:0”.DELETE操作删除表中记录后,再次向表中添加记录时,对于设置自增约束字段的值会从删除前表中该字段的最大值加1开始自增;TRUNCATE操作则会重新从1开始自增。

1、创建数据库表:

##这是一个单行注释

/*

多行注释

多行注释

多行注释

//

建立一张用来存储学生信息的表

字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息

*/

-- 创建数据库表:

create table t_student(

sno int(6), -- 6显示长度

sname varchar(5), -- 5个字符

sex char(1),

age int(3),

enterdate date,

classname varchar(10),

email varchar(15)

);

-- 查看表的结构:展示表的字段详细信息

desc t_student;

-- 查看表中数据:

select * from t_student;

-- 查看建表语句:

show create table t_student;

/*

CREATE TABLE t_student (

sno int DEFAULT NULL,

sname varchar(5) DEFAULT NULL,

sex char(1) DEFAULT NULL,

age int DEFAULT NULL,

enterdate date DEFAULT NULL,

classname varchar(10) DEFAULT NULL,

email varchar(15) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

*/

2、修改、删除数据:

-- 修改表中数据

update t_student set sex = '女' ;

update t_student set sex = '男' where sno = 10 ;

UPDATE T_STUDENT SET AGE = 21 WHERE SNO = 10;

update t_student set CLASSNAME = 'java01' where sno = 10 ;

update t_student set CLASSNAME = 'JAVA01' where sno = 9 ;

update t_student set age = 29 where classname = 'java01';

-- 删除操作:

delete from t_student where sno = 2;

3、修改、删除数据库中的表:

-- 查看数据:

select * from t_student;

-- 修改表的结构:

-- 增加一列:

alter table t_student add score double(5,2) ; -- 5:总位数 2:小数位数

update t_student set score = 123.5678 where sno = 1 ;

-- 增加一列(放在最前面)

alter table t_student add score double(5,2) first;

-- 增加一列(放在sex列的后面)

alter table t_student add score double(5,2) after sex;

-- 删除一列:

alter table t_student drop score;

-- 修改一列:

alter table t_student modify score float(4,1); -- modify修改是列的类型的定义,但是不会改变列的名字

alter table t_student change score score1 double(5,1); -- change修改列名和列的类型的定义

-- 删除表:

drop table t_student;

4、表的完整性约束-非外键约束:

/*

建立一张用来存储学生信息的表

字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息

约束:

建立一张用来存储学生信息的表

字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息

【1】学号是主键 = 不能为空 + 唯一 ,主键的作用:可以通过主键查到唯一的一条记录【2】如果主键是整数类型,那么需要自增

【3】姓名不能为空

【4】Email唯一

【5】性别默认值是男

【6】性别只能是男女

【7】年龄只能在18-50之间

*/

-- 创建数据库表:

create table t_student(

sno int(6) primary key auto_increment,

sname varchar(5) not null,

sex char(1) default '男' check(sex='男' || sex='女'),

age int(3) check(age>=18 and age

enterdate date,

classname varchar(10),

email varchar(15) unique

);

-- 添加数据:

-- 1048 - Column 'sname' cannot be null 不能为null

-- 3819 - Check constraint 't_student_chk_1' is violated. 违反检查约束

insert into t_student values (1,'张三','男',21,'2023-9-1','java01班','zs@126.com');

-- 1062 - Duplicate entry '1' f

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值