目录
1、sql 字段数据类型
2、查看数据库信息语句
3、sql 语句
创建、删除 数据库 数据表向表中添加、删除 记录、查询记录修改表名,添加、修改、删除 字段,添加唯一约束查看、删除、添加 表中的索引扩展功能,字段值自增等4、数据表高级操作
克隆表,将数据表的数据记录生成到新的表中删除记录后主键记录重头开始自增创建临时表5、创建外键约束,保证数据的完整性和一致性
6、mysql 六种约束
数据库中有数据表,数据表中有一条一条的记录。
可以用navicat 等远程连接工具链接数据库,不过数据库需要开启授权。
char 最多支持 255 个字符,char 如果存入数据的实际长度比指定长度要小,会补空格至指定长度;如果存入的数据的实际长度大于指定长度,低版本的 mysql 会被截取前 255个最伤感签名 字符,高版本会报错。
注 varchar 类型:在4.0版本以下,varchar(20),指的是20字节;5.0版本以上,varchar(20),指的是20字符。
首先登陆mysql,也可以用sql工具如 navicat 远程连接,前提是要在linux mysql 中用 grant 进行授权,允许远程登录。#授予root用户可以在所有终端远程登录,使用的密码是123456grant all privileges on *.* to 'root'@'%' identified by '123456';#对所有数据库和所有表有操作权限 with grant optiongrant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
navicat 连接参数
为了练习在linux 中操作,下面的都是在 linux 命令框中直接敲的。
linux 中登录mysqlmysql -u root -p密码1.查看当前服务器中的数据库 show databas;2.查看数据库中包含的表u 数据库名 #注意:数据库名区分大小写show tables;3.查看表的结构(设计、字段)describe [数据库名.]表名或desc 表名4. 查看创建表的命令show create table 表名5.查询结果行转列查看 glect * from ur_infog;6. 查看当前所在数据库lect databa()
sql语句用于 维护管理数据库,包括 数据查询、访问控制、数据更新、对象管理、备份等功能。
创建新的数据库
create databa 数据库名;例如:create databa school;
在数据库中新建表
create table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);#主键一般选择能代表唯一性的字段不允许取空值(null),一个表只能有一个主键。例:u school;create table student (id int(10) not null,name varchar(20),age int(3),x char(2),primary key (id));
删除表
drop table [数据库名.]表名;#如不用u进入库中,则需加上数据库名
删除数据库
drop databa 数据库名; #会连库中的表一起删除删除操作要小心,删除前记得被备份
#先创建 starbucks 数据库,再创建 ur_info 表,添加一些字段create databa starbucks;u starbucks;drop table if exists `ur_info`;create 降糖药table `ur_info` ( `id` int(32) not null, `name` varchar(20) default n安徽高考分数线ull, `type` varchar(32) default null, `add_time` varchar(20) default null, `is_ud` char(5) default null, primary key (`id`) )
向表中添加记录
inrt into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);例:#一条一条全字段添加inrt into ur_info(id,name,type,add_time,is_ud) values (1001, '咖啡机', '机器齐全', '2021-06-22', 'd0001');inrt into ur_info values (1002, '奶茶机', '设备', '2021-06-23', 'd0001');#或一条命令添加多条inrt into ur_info (id,name,type,add_time,is_ud) values (1003, '牛奶', '食品', '2021-06-24', 'd0002'),(1004, '包装机', '设备', '2021-06-20', 'd0001'),(1005, '糖块', '食品', '2021-06-25', 'd0001'),(1006, '吸管', '设备', '2021-06-20', 'd0001'),(1007, '奶油', '食品', '2021-06-25', 'd0002');
lect 查询语句
lec洋葱 原唱t 字段名1,字段名2[,...] from 表名 [where 条件表达式];#从0行开始共几行lect * from 表名 limit 行数 #根据行数范围取记录数lect * from 表名 limit 开始行数(不包括),从开始行数开始的共几行
update 更新
注意where 加更新的条件,不然会更新所有
update 表名 t 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];如 update ur_info t type='仪器' where id=1001;
delete 删除记录
注意where 加删除记录的条件,不然会删除所有
delete from 表名 [where 条件表达式];例:delete from class2 where id=4;
修改表名
alter table 旧表名 rename 新表名;例:alter table ur_info rename ur_mesg;show tables;1234
表中添加字段
alter table 表名 add 字段名 varchar(50) default '默认值';#default 表示此字段设置默认值;可与 not null 配合使用,默认值立即生效例:alter table ur_mesg add status varchar(20) default '在用';
删除表中字段
alter table 表名 drop 字段名;
修改字段(列)名,添加唯一键约束
alter table 表名 change 旧列名 新列名 数据类型 [unique key];例:alter table ur_mesg change name dev_name varchar(30) unique key;#验证唯一键约束,添加重名的约束字段inrt into ur_mesg values (1008,'牛奶','饮料','2021-06-28','d0001','已过期');#触发唯一键约束,新增失败unique key 唯一键:可以用有空值,不能出现重复值,也不能为 null,
#查看表有哪些索引 show indexes from 表名;
单独新增 去除唯一键约束
#给字段 dev_nam 增加唯一键约束alter table ur_mesg add unique index (dev_name);#给字段 dev_nam 去除唯一键约束#查看索引表中,字段 dev_name 对应的 索引名 key_name,根据索引名删除索引alter table ur_mesg drop index 索引名;
u school;create table if not exists area_info ( -> area_id int(4) zerofill primary key auto_increment, #指定主键的另一种方式-> area_name varchar(20) not null unique key,-> is_ud char(5) not null);#---------------命令解释--------------------------------#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建#int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;#自增长字段必须是主键;字段类型必须是 int 类型,如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次#unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键#not null:表示此字段不允许为null
方法一:使用 like
#先克隆表结构#在插入所有数据create table area_clone1 like area_info; #通过 like 方法,复制 area_info 表结构生成 area_clone1 表inrt into area_clone1 lect * from area_info;
如果两张表结构一样,可将一张表的查询结果集返回给 另一张表inrt into 表1 lect * from 表2
方法二:直接克隆
#直接将源表的查询结果给创建的新表create table 克隆表名(lect * from 源表名);show create table 克隆表名g;#获取数据表的表结构、索引等信息
注意:直接克隆无法复制原表的 主键、自动增长、约束、索引等配置。 用 like 可以。
delete from 表名;#delete清空表后,返回的结果内有删除的记录条目;delete工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用delete from 删除所有记录后,再次新添加的记录会从原来最大的记录 id 后面继续自增写入记录。truncate table 表名;#truncate 清空表后,没有返回被删除的条目;truncate 工作时是将表结构按原样重新建立,因此在速度上 truncate 会比 delete 清空表快;使用 truncate table 清空表内数据后,id 会从 1 开始重新记录。#相当于直接格式化表
临时表是在当前连接中生效的表。
临时表创建成功之后,使用 show tables 命令是看不到创建的临时表的;临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 drop table 语句手动直接删除临时表。create temporary table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);例:create temporary table tem_table (id int(4) primary key, remark varchar(20));inrt into tem_table values(1001,'临时表');lect * from tem_table;
执行 quit 退出连接后,再次登录,就操作不了临时表了
外键的定义:如果同一个属性字段x 在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。主键表和外键表的理解:(1)以公共关键字作主键的表为主键表(父表、主表)(2)以公共关键字作外键的表为外键表(从表、外表)注意:1. 与外键关联的主表的字段必须设置为主键。2. 要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。
#创建主表hobby create table hobby (hobid int(4),hobname varchar(50));#创建从表hobby_detail create table hobby_detail (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));#为主表hobby 添加一个主键约束。主键名建议以“pk_”开头。alter table hobby add constraint pk_hobid primary key (hobid);#为从表hobby_detail 表添加外键,并将 hobby_detail 表的 ho六年级上册第四单元作文bid 字段和 hobby 表的 hobid 字段建立外键关联。#外键名建议以“fk_”开头。alter table hobby_detail add constraint fk_hob foreign key (hobid) references hobby (hobid);desc hobby_detail ;#插入新的数据记录时,要先主表再从表inrt into hobby values(1,'football');inrt into hobby_detail values(1,'messi',32,1);
#删数数据记录时,要先从表再主表,也就是说删除主键表时必须先删除其他与之关联的表。drop tables hobby_detail ;drop tables hobby ;#查看和删除外键约束show create table hobby_detail ;alter tables hobby_detail drop foreign key fk_hob ; #fk_hob 是之前添加的外键名alter tables hobby_detail drop key fk_hob ;desc hobby_detail ;
去除外键后就可以删除表了
drop tables hobby_detail ;
drop tables hobby ;
key 列值的含义:
如果键是 pri,则列是主键或多列主键中的列之一。如果键是 uni,则该列是唯一索引的第一列。(唯一索引允许多个空值,但可以通过检查null字段来判断该列是否允许空。)如果键为 mul,则该列是非唯一索引的第一列,其中允许在列中多次出现给定值。本文发布于:2023-04-04 07:03:28,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/db35ba0078f51ed813cec7698e1bd7da.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:用mysql删除数据库语句(java实现验证码功能).doc
本文 PDF 下载地址:用mysql删除数据库语句(java实现验证码功能).pdf
留言与评论(共有 0 条评论) |