数据库基本介绍,表的创建删除,CRUD

一.数据库基本介绍

1.数据库三层结构

(1).所谓安装Mysql数据库,就是在主机安装一个数据库管理系统(DBMS:database manage system),这个管理程序可以管理多个数据库
(2).一个数据库中可以创建多个表,以保存数据
(3).数据可管理系统DBMS,数据库和表的关系如图所示:
1
2

2.数据在数据可中的存储方式

3

3.SQL语句分类

5

二.数据库(基础)

1.创建,删除数据库

1
CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf-8
COLLATE:指定数据库字符集的校对规则(常用的utf8_bin【区分大小写】,utf8_general_ci【不区分大小写】),默认是utf8_general_ci

使用案例:
创建数据库:
在这里插入图片描述
删除数据库:
4
创建指定字符集数据库和创建指定字符集并带校对规则的数据库:
5

2.查询数据库

6
查看所有数据库:
7
查看前面创建的某个数据库的定义信息:
8
注意:在创建数据库时,为了规避关键字,可以使用反引号(``)解决
比如:

CREATE DATABASE `CREATE`

3.备份和恢复数据库

(1).备份数据库(在DOS执行)

mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 文件名.sql
(mysqldump在mysql安装目录\bin下)
1文件名.sql表示放在哪个目录文件下,文件名是路径

(2).恢复数据库(进入Mysql命令行执行)

Source 文件名.sql
22
还有种方法:直接将bak.sql的内容复制到查询编辑器中运行

(3).备份数据库的表

3

三.表

1.创建表

1
**注意:**创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型
创建表:
(1).图形化创建
2
3
(2).指令(常用 )
4

2.Mysql常用数据类型(列类型)

5
1

(1).数值型(整型)

2
使用规范:在能够满足需求的情况下,尽量选择占用空间小的类型

TINYINT演示:
3
5

(2).数值型(bit)

基本使用:
5
细节说明:
1).bit字段显示时,按照位的方式显示(二进制)
2).查询的时候仍然可以使用添加的数值
3).如果一个值只有0,1,可以考虑使用bit(1),可以节约空间
4).bit(m),m在1~64
例如:
CREATE TABLE t1 (num BIT(8));
INSERT INTO t1 VALUES(255);
如果m为8,则添加的数据最大是255(二进制11111111),即八位二进制数

(3).数值型(小数)
1).FLOAT/DOUBLE[UNSIGNED]

float单精度,double双精度

2).DECIMAL[M,D] [UNSIGNED]

①.可以支持更高精度的小数位
②.M是小数位数(精度)的总数,D是小数点(标度)后面的位数
③.如果D是0,则值没有小数点或者分数部分。M最大65,D最大30。如果D被省略,默认是0,如果M被省略,默认是10
④.建议:如果希望小数的精度高,推荐使用decimal
⑤.decimal可以存放很大的数,比BIGINT更大

(4).字符串

1).CHAR(size):0~255字符
固定长度字符串,最大255字符
2).VARCHAR(size):0~65535字节
可变长度字符串,最大65532字节(utf8编码最大21844字符,1-3个字节用于记录大小)
如果tuf8编码,size=(65535-3)/3=21844
如果gbk编码,size=(65535-3)/2=32766

使用细节:
1).char(4) //这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算
2).varchar(4) //这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据,这四个字符表示多少个字节取决于使用的编码
3).char(4)是定长,就是说,即使你插入’aa’,也会占用分配的4个字符
4).varchar(4)是变长,就是说,如果你插入了’aa’,实际占用空间大小并不是4个字符,而是按照实际占用空间来分配的(注:varchar本身还需要占用1-3个字节来记录存放内容长度)
5).如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号等
6).如果一个字段的长度不是确定的,我们使用varchar,比如留言,文章
7).查询速度:char > varchar
8).在存放文本时,可以使用Text数据类型,可以将TEXT列视为VARCHAR列,注意Text不能有默认值,大小0~2 ^ 16字节。如果希望存放更多字符,可以选择MEDIUMTEXT (0-2 ^ 24)或者LONGTEXT(0-2 ^ 32)

(5).日期类型

在这里插入图片描述
演示:
在这里插入图片描述

3.修改表

使用ALTER TABLE语句追加,修改或删除列
在这里插入图片描述
使用:
4
在这里插入图片描述

四.数据库CRUD

C(create)R(read)U(update)D(delete)

1.Insert语句(添加数据)

在这里插入图片描述
使用:
在这里插入图片描述
细节说明:
(1).插入的数据应与字段的数据类型相同
(2).数据的长度应在列的规定范围内
(3).在values中列出的数据位置必须与被加入的列的排列位置相对应
(4).字符和日期型数据应包含在单引号中
(5).列可以插入空值(前提是该字段允许为空),insert into table value(null)
(6).insert into tab_name(列名…)values(),(),()形式添加多条记录
(7).如果是给表中的所有字段添加数据,可以不写前面的字段名称
(8).默认值的使用,当不给某个字段值时,如果有默认值就会添加,如果没有就会报错
如果某个列,没有指定not null,那么当添加数据时,则会默认为null;如果希望指定某个列的默认值,可以在创建表时指定(price DOUBLE NOT NULL DEFAULT 100;#指定为价格100)

2.Update语句(更新数据)

在这里插入图片描述
使用:
在这里插入图片描述
在这里插入图片描述
细节说明:
(1).UPDATE语法可以用新值更新原有表行中的各列
(2).SET子句指示要修改哪些列和要给予哪些值
(3).WHERE子句指定要更新哪些行,如果没有WHERE,则更新所有行(记录)
(4).如果需要修改多个字段,通过SET 字段1=值1,字段2=值2…

3.Delete语句(删除数据)

在这里插入图片描述
使用:
在这里插入图片描述
细节说明:
(1).如果不使用WHERE子句,将删除表中所有数据
(2).Delete语句不能删除某一列的值(可使用update设为null或’')
(3).使用Delete语句仅删除记录,不删除表本身,如果要删除表,使用drop table语句。DROP TABLE 表名;

4.Select语句(查找数据)!!!!!

(1).单表查询
1).基本语法

6
select指定查询哪些列的数据;column指定列名;*号代表查询所有列;from指定查询哪张表;distinct可选,指显示结果时,是否去掉重复数据

2).使用表达式对查询的列进行运算

在这里插入图片描述
在select语句中可以使用as语句:
在这里插入图片描述
例子:
9

3).在where子句中经常使用的运算符

1
模糊查询:
WHERE ‘name’ LIKE ‘赵%’;
%表示以赵开头的name

4).使用order by子句排序查询结果

2
1).Order by指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名
2).Asc升序(默认),Desc降序
3).ORDER BY 子句应位于SELECT语句的结尾
使用:
3

5).合计/统计函数

1).count——返回行的总数
在这里插入图片描述
注意:count(*):返回满足条件的记录的行数
count(列):统计满足条件的某列有多少个行,但是会排除null
例子:
1
2).sum——返回满足where条件的行的和,一般使用在数值列
2
例子:
3
注意:sum仅对数值起作用;对多列求和,“,”不能少
3).avg——返回满足where条件的一列的平均值
4
例子:
5
4).max/min——返回满足where条件的一列的最大/小值
6

6).分组统计

使用group by子句对列进行分组:
4
使用having子句对分组后的结果进行过滤:
5
例子:
7
8
9

(2).查询的加强

1).
在MySQL中,日期类型可以直接比较,需要注意格式
1
如何使用like操作符(模糊):
%表示0到多个任意字符;_表示单个任意字符
2
在这里插入图片描述
在这里插入图片描述
2).分页查询
基本语法:select … limit start,rows
表示从start+1行开始取,取出rows行,start从0开始计算
例子:按雇员的empno号升序取出,每页显示3条记录,请分别显示第一页,第二页,第三页
在这里插入图片描述
推导出公式:LIMIT 每页显示记录数*(第几页-1),每页显示记录数
3).多子句查询顺序总结:
如果select语句同时包含有group by, having, limit, order by,那么顺序是:group by, having, order by, limit
**补充:**一个数值加null,会变成null,比如100+null = null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LayUI是一个前端UI框架,不能直接用来对数据库进行CRUD操作,你需要使用后端语言(如PHP、Python、Java等)来实现对数据库的操作。以下是一个使用PHP语言和MySQL数据库进行学生CRUD操作的例子: ``` <?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = mysqli_connect($servername, $username, $password, $dbname); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // 查询学生 $sql = "SELECT * FROM student"; $result = mysqli_query($conn, $sql); // 输出学生 echo "<table>"; echo "<tr><th>ID</th><th>Name</th><th>Age</th><th>Gender</th><th>Department</th></tr>"; while($row = mysqli_fetch_assoc($result)) { echo "<tr><td>" . $row["id"]. "</td><td>" . $row["name"]. "</td><td>" . $row["age"]. "</td><td>" . $row["gender"]. "</td><td>" . $row["department"]. "</td></tr>"; } echo "</table>"; // 添加学生 if(isset($_POST["name"]) && isset($_POST["age"]) && isset($_POST["gender"]) && isset($_POST["department"])) { $name = $_POST["name"]; $age = $_POST["age"]; $gender = $_POST["gender"]; $department = $_POST["department"]; $sql = "INSERT INTO student (name, age, gender, department) VALUES ('$name', $age, '$gender', '$department')"; if (mysqli_query($conn, $sql)) { echo "New student record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } // 修改学生 if(isset($_POST["id"]) && isset($_POST["name"]) && isset($_POST["age"]) && isset($_POST["gender"]) && isset($_POST["department"])) { $id = $_POST["id"]; $name = $_POST["name"]; $age = $_POST["age"]; $gender = $_POST["gender"]; $department = $_POST["department"]; $sql = "UPDATE student SET name='$name', age=$age, gender='$gender', department='$department' WHERE id=$id"; if (mysqli_query($conn, $sql)) { echo "Student record updated successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } // 删除学生 if(isset($_POST["delete_id"])) { $id = $_POST["delete_id"]; $sql = "DELETE FROM student WHERE id=$id"; if (mysqli_query($conn, $sql)) { echo "Student record deleted successfully"; } else { echo "Error deleting record: " . mysqli_error($conn); } } // 关闭数据库连接 mysqli_close($conn); ?> ``` 这个例子中,我们使用了PHP语言和MySQL数据库来实现对学生CRUD操作。我们通过查询学生来输出学生信息,通过单提交来添加学生、修改学生和删除学生。你需要根据自己的需要进行修改和完善。同时,你还需要使用LayUI前端框架来美化学生的界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值