一、基本概念
1.1库和表
1.2常用的数据类型
二、查看数据库
2.1 查看当前服务器中的数据库
2.2 查看数据库中包含的表
2.3 查看表的结构(字段)
2.4 查看mysql版本
三、SQL语句
3.1创建及删除数据库和表
3.1.1 创建新的数据库
3.1.2 创建新的表
3.1.3 删除指定的数据表
3.1.4删除指定的数据库
3.2 管理表中的数据记录
3.2.1向数据表中插入新的数据记录
3.2.2 查询数据记录
3.3修改、更新数据表中的数据记录
3.4 在数据表中删除指定的数据记录
3.5修改表名和表结构
3.5.1 修改表名
3.5.2 扩展表结构(增加字段)
3.5.3修改字段(列)名,添加唯一键
3.5.4删除字段
3.6 使用 if 判断 创建表并测试自增和填充
四、数据表高级操作
4.1克隆表——将数据表的数据记录生成到新的表中
法一:先创建再导入
法二:创建的时候同时导入
4.2 清空表——删除表内的所有数据
4.2.1 deldte删除
4.2.2truncate删除
4.2.3创建临时表
4.3 创建外键约束
数据库–>数据表–>行(记录):用来描述一个对象的信息
** ******_ 列(字段):用来描述对象的一个属性
#大小写不区分,分号“;”表示结束
SHOW DATABASES;
USE 数据库名;
SHOW TABLES;
#示例1
use mysql
show tables;
USE 数据库名;
SHOW TABLES;
#示例1
use mysql
show tables;
1.示例1:使用相对路径查看
法一:
法二:加\G
2.示例2:使用绝对路径查看
#在mysql内查看mysql版本
select version();
#在linux系统中查看mysql版本
mysql -V
1.在mysql内查看mysql版本
2.在linux系统中查看mysql版本
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语句分类:
语句 | 代表的意思 |
---|---|
DDL | 数据定义语言,用于创建数据库对象,如库、表、索引等(create ) |
DML | 数据操纵语言,用于对表中的数据进行管理(insert drop delete update ) |
DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录(select ) |
DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限(grant ) |
CREATE DATABASE 数据库名;
#示例:创建一个名为hobby的数据库
creat database hobby;
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#示例:
use hobby;
create table info(id int(4) not null,name char(10),age int(3),hobby char(20),primary
key(id))
desc info;
#如不用USE进入库中,则需加上数据库名
DROP TABLE [数据库名.]表名;
#法一:使用绝对路径,需要进入表所在数据库
use hobby;
drop table info;
desc info;
#法二:使用相对路径,不需要进入表所在数据库
drop table student.info;
show tables in student;
DROP DATABASE 数据库名;
#向数据表中插入新的数据记录
insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);
#示例1
insert into info(id,name,age,hobby) values(2,'yxp',18,'dance')
select * from info;
#示例2:直接使用表明加入字段
insert into info values(1,'dhc',20,'basketball')
#示例3:可以指定字段添加
insert into info(id,name,age) values(3,'dhc',20)
示例1
示例2:直接使用表明加入字段
示例3:可以指定字段添加
#格式
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#示例1:查看所有数据
select * from info;
#示例2:查询指定数据
select name,hobby from info where id=1;
#示例3:以列表方式竖向显示
select * from info \G;
#示例4:只显示头2行
select * from info limit 2;
#示例5:显示第2行后的前2行
示例1:查看所有数据
示例2:查询指定数据
示例3:以列表方式竖向显示
示例4:只显示头2行
示例5:显示第2行后的前2行
#格式
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
#示例1:修改年龄和爱好
update info set age=19,hobby='sing' where id=1;
示例1:修改年龄和爱好
#格式:
DELETE FROM 表名 [WHERE 条件表达式];
#示例:删除表中id为4的数据
delete from info where id=4
ALTER TABLE 旧表名 RENAME 新表名;
#示例:将表名info修改成base
示例:将表名info修改成base
#default 'default值':表示此字段设置默认值 地址未填写!;可与 NOT NULL 配合使用
ALTER TABLE 表名 ADD address varchar(50) default 'default值';
#示例
alter table base add address char(100) default'china'
#格式
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
#示例:
alter table base change hobby user_hobby char(200) unique key;
#格式
ALTER TABLE 表名 drop 字段名;
#示例
alter table base drop age;
use hobby;
create table if not exists info.bak (
id int(4) zerofill primary key auto_increment,
name char(20) not null,
sid int(18) not null unique key,
ge int(3) not null,
address char(100));
分析:
测试:
#通过 LIKE 方法,复制 info 表结构生成 test01 表
create table test01 like info;
#导入数据
insert into test01 select * from info;
create table test02 (select * from info);
#获取数据表的表结构、索引等信息
show create table test01\G;
DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。
#delete from 表名;
delete from info;
TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录
truncate table info;
临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。
##添加临时表test03
create temporary table test03 (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
## 查看当前库中所有表
show tables;
##在临时表中添加数据
insert into test03 values(1,'zhangsan',123456789,'watch a film');
##查看当前表中所有数据
select * from test03;
##退出数据库
quit
##重新登录后进行查看
mysql -u root -p
##查看之前创建的临时表中所有数据,发现已经被自动销毁
select * from test03;
主表:pro表结构如下:
子表:stu表结构如下:
与外键关联的子表的字段必须设置为主键。要求主表外键字段和子表的字段具备相同的数据类型、字符长度和约束。
#为主表设置主键
alter table pro add primary key(pid);
#为从表设置外键
alter table stu add foreign key (proid) references pro(pid);
测试:此时不可以删除主表,因为主表被外表引用,要查看和删除外键约束 ,如果要删除外键约束字段先删除外键约束,再删除外键名
测试:删数数据记录时,要先从表再主表,也就是说删除主键表时必须先删除其他与之关联的表。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/m0_51160032/article/details/121534634
内容来源于网络,如有侵权,请联系作者删除!