Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan kandungan berkaitan tentang DDL, DML dan DQL, termasuk jadual data pengendalian, pangkalan data pengendalian, data pertanyaan mudah, dll. Mari lihat kandungan di bawah, semoga bermanfaat kepada semua.
Pembelajaran yang disyorkan: tutorial video mysql
Kelebihan pangkalan dataGudang untuk menyimpan data. Ia terkandung dalam komputer kita sebagai perisian atau sistem fail. Kemudian simpan data dalam fail khas ini dan anda perlu menggunakan bahasa tetap (bahasa/penyataan SQL) untuk mengendalikan data dalam fail.
- Gudang yang menyimpan data disimpan dalam cara yang teratur
- Nama bahasa Inggeris:
DataBase
, disingkatkan sebagai DB
Pangkalan data menyimpan data dalam fail mengikut format tertentu, dan sejumlah besar data boleh diproses dengan mudah melalui pernyataan SQLPangkalan data biasa,
增
,删
,改
operasi, pangkalan data ialah penyelesaian yang cekap untuk menguruskan sejumlah besar maklumat.查
Sistem pengurusan pangkalan data relasi biasa
Apabila kami membangunkan aplikasi, Semua data akhirnya perlu disimpan kepada perisian profesional. Perisian profesional untuk menyimpan data ini dipanggil pangkalan data. Apabila kita belajar pangkalan data, kita tidak belajar bagaimana untuk membangunkan perisian pangkalan data Apa yang kita pelajari ialah cara menggunakan pangkalan data dan operasi rekod data dalam pangkalan data. Perisian pangkalan data dibangunkan oleh syarikat pihak ketiga.
Pangkalan data yang biasa digunakan: Pangkalan data yang digunakan terutamanya untuk aplikasi pembangunan Java: MySQL (5.6), Oracle, DB2. (Sebab: sumber terbuka, percuma dan cukup berkuasa untuk menangani pembangunan web)
Pangkalan data hubungan Apabila membangunkan perisian, mesti ada perbezaan tertentu antara data dalam hubungan perisian wujud. Contohnya, dalam perhubungan antara produk dan pelanggan, seorang pelanggan boleh membeli berbilang produk, dan satu produk boleh dibeli oleh berbilang pelanggan. Anda perlu menyimpan data ini dalam pangkalan data dan mengekalkan hubungan antara data Dalam kes ini, anda boleh terus menggunakan pangkalan data di atas. Semua pangkalan data di atas adalah pangkalan data hubungan.Data perhubungan: Apabila mereka bentuk pangkalan data, ia perlu diterangkan menggunakan gambar rajah perhubungan entiti E-R.
E-R ialah huruf pertama bagi dua perkataan, E bermaksudentiti dan R bermaksud hubungan
Entity
.Relationship
1. Mesti ada hubungan tertentu antara data dalam jadual data, seperti hubungan antara produk dan pelanggan Seorang pelanggan boleh membeli berbilang produk dan satu produk boleh Dibeli oleh berbilang pelanggan.
- 2 Apabila mereka bentuk pangkalan data, anda boleh menggunakan rajah perhubungan entiti ER untuk menerangkan hubungan antara jadual E mewakili Entiti dan R mewakili Perhubungan
- 3 Objek dalam program Java. Contohnya, produk, pelanggan, dsb. adalah semua objek entiti. Ia diwakili oleh segi empat tepat (segi empat tepat) dalam rajah E-R.
- 4. Atribut: Objek entiti mengandungi atribut, seperti nama produk, harga, dsb. Untuk atribut dalam entiti, kami memanggil data entiti ini, yang diwakili oleh elips dalam rajah E-R.
- 5. Hubungan: entiti dan hubungan antara entiti: diwakili oleh berlian dalam rajah E-R.
Keperluan: Gunakan gambar rajah E-R untuk menerangkan hubungan antara pelanggan, produk dan pesanan
Apakah itu SQL
Structured Query Language
Bahasa Pertanyaan Berstruktur. Pernyataan SQL tidak bergantung pada mana-mana platform dan biasa kepada semua pangkalan data. Selepas mempelajari cara menggunakan pernyataan SQL, anda boleh menggunakannya dalam mana-mana pangkalan data, tetapi semuanya mempunyai kandungan unik. Pernyataan SQL berkuasa, mudah dipelajari dan mudah digunakan.
Ciri SQL
Pernyataan SQL ialah bahasa bukan prosedur dan hasil khusus akan muncul selepas setiap SQL dilaksanakan. Tiada kesan antara berbilang pernyataan
Fungsi SQL
Pernyataan SQL digunakan terutamanya untuk mengendalikan pangkalan data, jadual data, jadual data Rekod data
Sintaks umum SQL
- Pernyataan SQL boleh ditulis dalam satu baris atau berbilang baris dan berakhir dengan koma bertitik.
- Gunakan ruang dan lekukan untuk membuat pernyataan lebih mudah dibaca.
- Pernyataan SQL bagi pangkalan data MySQL tidak peka huruf besar-kecil dan kata kunci biasanya menggunakan huruf besar dalam pembangunan
- Tiga jenis ulasan
- ulasan satu baris:-- 注释内容
<.> - ulasan berbilang baris:/* 注释内容 */
-
: (komen baris tunggal khusus mysql)# 注释内容
Klasifikasi SQL SQL digunakan untuk mengakses pangkalan data hubungan Bahasa mempunyai empat fungsi: mentakrif, memanipulasi, mengawal dan menyoal pangkalan data hubungan. Oleh itu, kami mengklasifikasikan SQL berdasarkan empat fungsi.
Struktur direktori MySQL Sambungan pangkalan data MySQL
- Bahasa definisi data DDL (Data Definition Language)
digunakan untuk mentakrifkan objek pangkalan data: pangkalan data, jadual, lajur, dsb. Kata kunci: buat drop alter truncate (kosongkan rekod data) tunjukkan dan lain-lain.
- DML (Data Manipulation Language) bahasa manipulasi data ★★★ dikemas kini dalam jadual pangkalan data , Tambah dan padam rekod. Seperti kemas kini (kemas kini), masukkan (masukkan), padam (padam) tidak termasuk pertanyaan
- DQL (Bahasa Pertanyaan Data) bahasa pertanyaan data ★★★★★
data pertanyaan rekod jadual. Pilih kata kunci.
- DCL (
Bahasa Kawalan Data) Bahasa Kawalan Data (faham)
ialah pernyataan yang digunakan untuk menetapkan atau menukar pengguna pangkalan data atau kebenaran peranan. Seperti memberikan (menetapkan kebenaran), membatalkan (membatalkan kebenaran), memulakan transaksi, dsb. Ini agak jarang digunakan.
MySQL ialah pangkalan data yang memerlukan nama akaun dan kata laluan untuk log masuk. Anda boleh menggunakannya selepas log masuk. Ia menyediakan akaun akar lalai Anda boleh log masuk menggunakan kata laluan yang ditetapkan semasa pemasangan.
Mulakan perkhidmatan pangkalan data : Masukkan perintah dalam tetingkap dos terbuka net start MySQL
Tutup perkhidmatan pangkalan data : Buka arahan Enter the dalam tetingkap dos net stop MySQL
untuk menyambung ke MySQL : Format log masuk 1: mysql -u用户名 -p密码
mysql -uroot -p123456
Format log masuk 2: mysql[-h连接主机ip地址 -P端口号3306] -u 用户名 -p 密码
mysql -h 127.0.0.1 -P 3306 -u root -p 123456
Jika anda menyambung ke mesin tempatan: anda boleh meninggalkan -h -P hos IP dan port . Dengan cara ini, anda boleh log masuk ke pangkalan data mysql
Keluar : Arahan exit
Paparan pangkalan data : show databases;
Cipta pangkalan data:
1 . Cipta pangkalan data secara langsungcreate database 数据库名;
create database if not exists 数据库名;
create database 数据库名 character set 字符集;
Penjelasan: Set aksara ialah nama jadual pengekodan dalam mysql, utf8
Lihat pangkalan data:
1 Lihat semua pangkalan datashow databases;
show create database 数据库名;
select database();
DDL_Ubah suai dan padam pangkalan data
use 数据库名;
1. Ubah suai set aksara pangkalan data
-- alter 表示修改alter database 数据库名 default character set 新字符集;
Java中的常用编码对应mysql数据库中的编码 删除数据库: 1.直接删除 2.删除数据库时判断是否存在(如果存在,则删除) 约束的概念: 约束是作用于表中列上的规则,用于限制加入表的数据 约束的存在保证了数据库中数据的正确性、有效性和完整性 约束的分类: MySQL5.7不支持检查约束,但写入语句不会报错,MySQL8.0版本支持检查约束 非空约束 非空约束用于保证列中所有数据不能有NULL值 1.建表时添加约束 2.建完表之后添加约束 3.删除约束 唯一约束 唯一约束用于保证列中所有数据各不相同 1.创建表时添加唯一约束 2.建完表之后添加唯一约束 3.删除唯一约束 主键约束 1.创建表时添加主键约束 2.建完表之后添加主键约束 3.删除主键约束 默认约束 保存数据时,未指定值则采用默认值 1.创建表时添加默认约束 2.建完表后添加默认约束 3.删除约束 前提 :创建数据库 创建表: 创建一个表结构和其他表结构相同的表 MySQL中常用的数据类型 设计一张学生表,要求如下: 1.查看某个数据库中所有的表 2.查看表结构 3.查看创建表的SQL语句 删除表: 1.直接删除 2.删除表时判断表是否存在(如果存在,则删除) 修改表: 1.修改表名 2.向表中添加一个字段(一列) 3.修改表中字段数据类型 4.修改表中字段名(列名)和数据类型 5.删除表中字段(列) 1.插入全部字段 3.批量插入数据 没有添加数据的字段会使用NULL 注意: 值与列一一对应。有多少个列,就需要写多少个值。如果某一个列没有值,可以使用null,表示插入空。 值的数据类型,与列被定义的数据类型要相匹配,并且值的长度,不能够超过定义的列的长度。 字符串:插入字符类型的数据,建议写英文单引号括起来。在mysql中,使用单引号表示字符串 date 时间类型的数据也得使用英文单引号括起来: 如 1.不带条件修改数据 4.注意 1.不带条件删除 2.带条件删除 4.truncate和delete区别 准备一张学生表,在这张表上进行查询操作 1.查询所有数据 1.条件查询语法 2.条件运算符 3.查询数学成绩大于80并且性别为男的学生 MySQL通配符有两个: 1.查找名字中以孙开头的学生 通过 1.单列排序 之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值;另外聚合函数会忽略空值,对于 1.五个聚合函数 2.聚合函数语法 注意:null 值不参与所有聚合函数运算 3.查询学生总数 分组: 按照某一列或者某几列。把相同的数据,进行合并输出。 1.注意 2.查询各个班级的数学成绩总和 having必须和group by 一起使用,having和where的用法一模一样,where怎么使用having就怎么使用,where不能使用的,having也可以使用,比如说where后面不可以使用聚合函数,但是在having后面是可以使用聚合函数的。 having 通常与group by 分组结合使用。 where 和分组无关。 having 可以书写聚合函数 (聚合函数出现的位置: having 之后),例如having中的 聚合函数(count,sum,avg,max,min),是不可以出现where条件中。 where 是在分组之前进行过滤的,having 是在分组之后进行过滤的。 1.应用和概念 比如我们登录京东,淘宝,返回的商品信息可能有几万条,不是一次全部显示出来。是一页显示固定的条数。假设我们一每页显示5条记录的方式来分页。 计算公式:起始索引=(当前页码-1)* 每页显示的条数 注意: 2.分页查询 3.返回前几条或者中间某几行数据 顺序:1234567 推荐学习:mysql视频教程
Java
MySQL
UTF-8
utf8
GBK
gbk
GB2312
gb2312
ISO-8859-1
latin1
-- drop 删除数据库drop database 数据库名;
drop database if exists 数据库名;
SQL_DDL_操作数据表
DDL_数据库约束
约束名称
关键字
描述
非空约束
NOT NULL
保证列中所有数据不能有null空值
唯一约束
UNIQUE
保证列中所有数据各不相同
主键约束
PRIMARY KEY
主键是一行数据的唯一标识,要求非空且唯一
检查约束
CHECK
保证列中的值满足某一条件
默认约束
DEFAULT
保存数据时,未指定值则采用默认值
外键约束
FOREIGN KEY
外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
-- 创建表时添加非空约束create table 表名(
列名 数据类型 not null,
...);
-- 建完表之后添加约束alter table 表名 modify 字段名 数据类型 not null;
alter table 表名 modify 字段名 数据类型;
-- 方式1create table 表名(
字段名 数据类型 UNIQUE,
...);-- 方式2create table 表名(
字段名 数据类型,
...
[CONSTRAINT] [约束名称] UNIQUE(列名));
-- 建完表后添加唯一约束alter table 表名 modify 字段名 数据类型 UNIQUE;
alter table 表名 drop index 字段名;
create table 表名(
字段名 数据类型 PRIMARY KEY [AUTO_INCREMENT],
-- [AUTO_INCREMENT] 当不指定值时自动增长
...);create table 表名(
列名 数据类型,
[CONSTRAINT] [约束名称] PRIMARY KEY(列名))
alter table 表名 add PRIMARY KEY(字段名);
alter table 表名 drop PRIMARY KEY;
create table 表名(
字段名 数据类型 default 默认值,
...);
alter table 表名 alter 列名 set DEFAULT 默认值;
alter table 表名 alter 列名 drop DEFAULT;
DDL_创建和查看和表
db1
并使用这个数据库-- 创建数据库create database db1;-- 使用数据库use db1;
create table 表名(
字段名1 字段类型 约束条件,
字段名2 字段类型 约束条件,
...
字段名n 字段类型 约束条件);-- 注意:最后一个字段不加逗号
create table 表名 like 其他表名;
案列需求:
create table students(
id int primary key auto_increment,
name varchar(10) not null unique,
sex enum('男','女') default null,
class varchar(10),
starttime date,
math int default 60,
english int);
查看表:show tables;
desc 表名;
show create table 表名;-- 根据该语句查看上面案列的建表sql语句show create table students;
DDL_删除表和修改表的结构
drop table 表名;
drop table if exists 表名;
alter table 旧表名 rename to 新表名;
alter table 表名 add 字段名 数据类型;
alter table 表名 modify 字段名 新的数据类型;
alter table 表名 change 字段名 新的字段名 新的数据类型;
alter table 表名 drop 字段名;
SQL_DML_操作数据库
DML_插入表数据
-- 全部字段写出来insert into 表名(字段1,字段2,...) values(值1,值2,...);
-- 插入全部不写字段名insert into 表名 values(值1,值2,...);
-- 给案例中的表插入数据insert into students(id,name,sex,class,starttime,math,english) values(1,'张三','男','高三1班','2022-03-02',80,69);
insert into students values(2,'李四','女','高三2班','2022-03-01',70,80);
2.插入部分数据-- 插入姓名,班级,入学时间,英语成绩-- id默认增长,性别默认null,数学默认60
insert into students(name,class,starttime,english) values('王五','高三3班','2022-03-02',78);
说明:插入部分数据的时候,要求列名一定书写出来。insert into 表名 values(字段值1, 字段值2...),(字段值1, 字段值2...),(字段值1, 字段值2...);
yyyy-MM-dd
DML_更新表数据
update 表名 set 字段名=新的值,字段名=新的值,...;
-- 注意:不带条件的修改是将数据表中的整列都做修改
-- 修改students表中math的值为90update students set math=90;
2.带条件修改数据update 表名 set 字段名=新的值,字段名=新的值,... where 条件;
-- 修改students表中王五的性别为男,数学成绩设置为70update students set sex='男',math=70 where name='王五';
3.关键字说明UPDATE: 表示修改记录
SET: 要改哪个字段WHERE: 设置条件
DML_删除表记录
DELETE -- 删除记录DELETE FROM 表名;表还在,可以操作,只是删除数据。
DELETE FROM 表名 WHERE 条件;-- 删除学生表中的王五的信息DELETE FROM students WHERE name='王五';
3.truncate删除表记录(属于DDL)truncate table 表名;
SQL_DQL_ 简单查询数据
DQL_基础查询
select * from 表名;
-- 查询学生表中所有的数据select * from students;
2.查询指定列的数据select 字段名1,字段名2,... from 表名;
-- 查询姓名和班级这两个字段select name,class from students;
3.查询到的字段设置别名select 字段名1 as 别名1,字段名2 as 别名2 from 表名;
-- 查询students表中的字段并设置别名select id as 学号,name as 姓名,sex as 性别,class as 班级 , starttime as 入学时间 from students;
4.查询到的数据去重-- DISTINCT 去重复-- 查询班级字段结果不出现重复的select DISTINCT class from students;
DQL_条件查询
select 字段名1,字段名2,... where 条件列表;
符号
功能
>
大于
小于
>=
大于等于
小于等于
=
等于
或!=
不等于
BETWEEN…AND…
在某个范围内(都包括)
IN(…)
多选一
LIKE
模糊查询,_单个任意字符,%多个任意字符
IS NULL
为空
IS NOT NULL
不为空
AND 或 &&
与,并且
OR 或 ||
或,或者
NOT 或 !
非,不是
-- 两个条件同时满足select * from students where math > 80 and sex='男';
4.查询英语成绩在60-80之间的学生-- BETWEEN 值1 AND 值2 -- 表示从值1到值2范围,包头又包尾
select * from students where english between 60 and 80;
select * from students where english>=60 && english<p><img src="https://img.php.cn/upload/article/000/000/067/01283e47128a89592860b85cda10b160-24.png" alt="Ringkasan asas DDL, DML dan DQL untuk pembelajaran MySQL"><br><strong>5.查询学号为1或者2或者3的学生</strong></p><pre class="brush:php;toolbar:false">-- in里面的每个数据都会作为一次条件,只要满足条件的就会显示select * from students where id in (1,2,3);
DQL_模糊查询
LIKE
:表示模糊查询select * from 表名 where 字段名 like '通配字符';
%
:表示0个或多个字符(任意字符)_
:表示一个字符-- '孙%'表示孙后面有任意个字符select * from students where name like '孙%';
2.查找名字中以孙开头的两个字的学习-- '孙_'表示孙后面只能有一个字符select * from students where name like '孙_';
DQL_查询排序
ORDER BY
子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)-- ASC:升序排序(默认)-- DESC:降序排序select 字段 from 表名 order by 排序字段 [ASC|DESC];
-- 查询学生的数学成绩按照升序排序select * from students order by math ASC;
2.组合排序-- 查询数学成绩升序的基础上,英语成绩降序-- 组合排序就是先按第一个字段进行排序,如果第一个字段相同,才按第二个字段进行排序,依次类推。
select * from students order by math ASC,english DESC;
DQL_ 聚合函数
null
不作为统计。
函数名
功能
count(列名)
统计数量(一般选用不为null的列)
max(列名)
最大值
min(列名)
最小值
sum(列名)
求和
avg(列名)
平均值
select 聚合函数名(列名) from 表名;
select count(id) from students;-- 通常使用select count(*) from students;
4.查询最高分和最低分-- 查询数学最高分和英语最低分select max(math),min(english) from students;
5.求和求平均值-- 求该表数学总分和平均值select sum(math),avg(math) from students;
6.ifnull()函数-- ifnull(列名,默认值)函数表示判断该列是否为空值,如果为null,返回默认值,如果不为空,返回实际值ifnull(math,60);
-- 如果数学成绩为null时,返回60,如果不为null,就返回实际值
DQL_分组查询
select
后面的内容是被分组的列,以及聚合函数sql
语句中的where
后面不允许添加聚合函数having
条件,表示分组之后的条件,在having
后面可以书写聚合函数-- 查询每个班的数学成绩总和select class,sum(math) from students group by class;
3.having用法-- 查询每个班数学总成绩大于300分的班级并显示总成绩
select class,sum(math) from students group by class having sum(math)>300;
4.where和having的区别
DQL_分页查询
-- 起始索引:从0开始,索引是0表示数据表第一行数据select 字段列表 from 表名 limit 起始索引,查询条目数;
limit
是MySQL数据库的方言rownumber
top
<span style="font-family: " microsoft yahei sans gb helvetica neue tahoma arial sans-serif>-- 查询学生表中数据,每四条数据为一页<br>select * from students limit 0,4;<br>select * from students limit 4,4;<br>select * from students limit 8,4;<br>select * from students limit 12,4;<br>...<br>-- 注意:最后一行不够查询条目数,有多少就显示多少</span><br>
-- 2表示分页查询的索引,对应数据表是第3行数据,4表示每页显示4条数据
-- 查询从第三行数据开始查询之后的四条数据
select * from students limit 2,4;
4.SQL执行顺序SELECT 字段名(5) FROM 表名(1) WHERE 条件(2) GROUP BY 分组列名(3) HAVING 条件(4) ORDER BY 排序列名(6) LIMIT 跳过行数, 返回行数(7);
执行顺序:1234567
Atas ialah kandungan terperinci Ringkasan asas DDL, DML dan DQL untuk pembelajaran MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!