MYSQL的基础用法

一、MYSQL的基础用法

  1. 首先安装mysql数据库并设置密码
  2. 其次登录数据库
  3. 数据库的基本操作(增、删、改、查)。
1.1 DML:管理表中的数据记录
  1. insert:插入新数据
  2. update:更新原有数据
  3. delete:删除不需要的数据

① 格式:

INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);
创建库 
use sch
创建表
create table xinxi (id int not null,name varchar(20) not null,score decimal(5,2) not null,age int(5),address varchar
(50) default 'xinxi',primary key(id));

② 插入新数据

insert into xinxi (id,name,score,age,address) values(1,'lisi',89.167,23,'上海');

③ 使用default插入

 insert into xinxi (id,name,score,age,address) values(2,'zhangsan',89.167,23,default);

注意:主键中的数值不可重复,不然执行不起来。

1.2 查看表中的信息
select * from xinxi;
select * from xinxi\G;   以列的方式进行输出

在这里插入图片描述
在这里插入图片描述

insert into xinxi values(4,'lisi',90.12,55'杭州'),(5,'wangwu',50,‘北京');

在这里插入图片描述

1.3 创建加密密码的表
create table user (id int not null,name char(10) not null,score decimal(5,2),passwd char(48) default' ',primary ke
y (id));

在这里插入图片描述

 insert into user values(1,'zhaoliu',20,'abc123');            #不加密
 insert into user values(2,'zhaoliu',20,PASSWORD('abc123')); #设置加密密码可以用括号括起来

在这里插入图片描述

1.4 update更新原有数据(行)
修改、更新数据表中的数据记录格式:
UPDATE表名SET字段名1=字段值1[,字段名2=字段值2][WHERE 条件表达式];

① 示例

update user set name='zhangsan' where id=1;
update user set name='wangwu';     #后面不跟where的话所有的name字段都会改变
update user set name='lisi',passwd=' ' where id=2;  #可用逗号分隔修改多个字段

② elete:册除不需要的数据(表内容)

在数据表中删除指定的数据记录
格式:

DELETE     FROM表名      [WHERE条件表达式];
delete from user where id='2';    #where选择唯一性较强的删除

二、DQL查询数据记录

select
格式:
SELECT字段名1,字段名2[,...] FROM  表名[WHERE 条件表达式] 
select * from xinxi;
select * from xinxi\G                       #以列表方式竖向显示
select id,name  from xinxi;
select id,name from xinxi where score>90;   #查询出分数大于90的
select * from xinxi limit 2;                #输出前三行(表头为一行)
select * from xinxi limit 1,2;              #显示第一行下面的两行(不包括第一行)

在这里插入图片描述

2.1 DCL修改表名和表结构

① alter 修改表名和表结构(表结构)

alter  table 旧表名   rename 新表名;

 alter table xinxi rename xinxi_new;

② 扩展表结构(增加字段)

alter table xinxi add  hobid  int(5);

③ 修改字段名,添加唯一键

alter table xinxi change address address_new varchar(50) unique key default '地址不详';

④ unique key 为唯一键(特性:唯一,但可以为空,空值只允许出现一次)
promary key:唯一且非空

在这里插入图片描述
⑤ 添加字段记录

insert into xinxi values(6,'tianqi',89,default,3);

⑥ 删除字段格式:

ALTER    TABLE表名    DROP     字段名;
alter table xinxi drop hobid;

⑦ 扩展

create table if not exists info(id int(4) zerofill primary key auto_increment not null,name varchar(20),cardid int
(188) not null unique key,hobby varchar(50) not null);

在这里插入图片描述

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int (4) zerofill:表示若数值不满4位数,则前面用"o"填充,例0001
#auto increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
#unique
key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL

⑧ 数据表高级操作

create table yyy2 like yyy;
#复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into yyy2 select *  from yyy;
#备份内容
create table new like xinxi;
insert into new select * from xinxi;

在这里插入图片描述
⑨ 克隆表,将数据表的数据记录生成到新的表中

CREATETABLE test02(SELECT * from test);l复制test表数据到test02中
create table xxx (select * from xinxi);

在这里插入图片描述
⑩ 设置主键
在这里插入图片描述
清空表,删除表内的所

delete from user;
truncate table xxx;
2.2 清空表,册除表内的所有数据
方法一:
delete from yyy3;
#DELETE清空表后,返回的结果内有删除的记录条目;
DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。
方法二:
truncate table test01;
#TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,
ID会从l开始重新记录
2.3 小结:#删除类型
drop table table_name1)属于DDL
(1)不可回滚(无法恢复)2)不可带where  (3)表内容和结构册除  (5)册除速度快

truncate table table name
(1)属于DDL )(2)不可回滚 (3)不可带where (4)表内容删除 (5)删除速度快

delete from table_name
(1)属于DML     (2)可回滚(可恢复)3)可带where
(4)表结构在,表内容要看where执行的情况
(5)删除速度慢,需要逐行删除

不再需要一张表的时候,用drop
想删除部分数据行时候,用delete,并且带上where子句
保留表而删除所有数据的时候用truncate

速度方面
drop> truncate> delete
安全性方面
delete最好
2.4 创建临时表
create temporary  table xxxx (id int(4),name varchar(10));

临时表:只会保存在内存中,在数据库退出连接之前的所有操作,都是在内存中进行的,不会保存在磁盘里面,退出连接后,临时表会释放掉
永久表:sql 写入——》数据表中—》先把数据保存在内存中—》写入到磁盘

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值