自学MySQL所记(一)

本文详细介绍了SQL语言的主要组成部分,包括数据类型、数据库元素、表的创建、数据插入、查询、更新和删除等操作。通过Navicat工具展示了如何连接MySQL数据库并进行实践操作。此外,还讲解了字段约束,如主键、非空、唯一和默认值约束,以及如何消除查询结果中的重复记录。
摘要由CSDN通过智能技术生成

MySQL

一、SQL语言主要分为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-daifSmxN-1649167151720)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648695190758.png)]

二、Navicat

](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648694553253.png)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hQD5wDsZ-1649167151722)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648695040067.png)]

连接MySQL后,新建数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mKbqRIuN-1649167151724)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648699563831.png)]

打开数据库,查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ty6AN6wU-1649167151725)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648699722648.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lIELP82G-1649167151726)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648699877622.png)]

三、SQL语言基础

1、sql语言中的注释

注释 ctrl+/ --行注释

解除注释ctrl+shift+/ /注释内容/

2、常用数据类型

整数:int,有符号范围(-2147483648,2147483647),无符号范围(0,4294967295)如:int unsigned,代表设置一个无符号的整数;

小整数:tinyint,有符号范围(-128,127),无符号范围(0,255)

小数:decimal,如decimal(5,2)表示共存五位,小数两位,不能超过两位;整数占三位,不能超过三位。

字符串:varchar,如(3)表示最多存三个字符,一个中文或一个字母都占一个字符

日期时间:datetime,范围(1000-01-01 00:00:00~9999-12-31 23:59:59)

3、数据库中的元素

数据库——database

表——table

字段——field

记录(行)——record

4、创建表

create table 表名 (字段名 字段类型,字段名 字段类型);

创建一个字段:

例 创建a ,字段要求:name(姓名),数据类型:varchar(字符串),长度为10.

     create  table a (name varchar(10));
创建两个字段表:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KOugm39a-1649167151728)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648704018487.png)]

create table b (

   name varchara(10),

   height decimal(5,2)

);
创建三个字段表:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXi8Fa7K-1649167151730)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648704482408.png)]

create table c (

​    id int,

​    name varchar(20),

   age tinyint unsigned

);

左侧 表格刷新

5、插入记录insert

  • 格式一 insert into 表名 values (…);

往表c里插入一个字段:

insert into c values(0,'张飞',30)
  • 格式二 insert into c (字段名) values (…);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Z8uvYy3-1649167151732)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648706157639.png)]

          insert into c (id,name) values (3,  '刘备')
  • 插入多条字段,用分号隔开

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZxHXvu9K-1649167151734)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648706439054.png)]

insert into c values (4,'关羽'23)insert into c (id,name) values (5,灰太狼,15)insert into c (name) values (喜羊羊)
  • 用一条insert 插入多条记录,用逗号隔开

    格式 insert into 表名 values (值,值),(值,值);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zcXc5ClC-1649167151735)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648707111834.png)]

insert into c values (7,'小a',24),

   (8,'lulu',26),

   (9,'懒洋洋',44);
  • insert into 表名 (字段名,字段名) values (值,值),(值,值),(值,值);

6、select查询表

  • 语法:select * from 表名; 查询表的所有字段
   select * from c ;              查询表c的所有字段

指定字段名查询

  • 语法 select 字段名 ,字段名 from 表名;
      select id from c;        查询表c的id字段
      select name, id, age from  c ;     查询表c的所有字段,但顺序自定义

7、update 修改数据

语法:update 表名 set 字段=值, 字段=值 where 条件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y57RxZUt-1649167151737)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648711734775.png)]

      update c set age=50;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ry5dmPvN-1649167151738)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648711915127.png)]

  update  c  set  name='狄仁杰',age=20  where id=3;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pE7YckQq-1649167151741)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648712200047.png)]

   update  c set  age=age+1 from  id>10;

8、delete 删除表中的记录

语法 delete from 表名 where 条件;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exZyiYa7-1649167151743)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648780133238.png)]

        delete from  c  where id=4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-60HnrGas-1649167151744)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648780314234.png)]

      delete  from c;

9、truncate table 删除表的数据

语法 truncate table 表名;

删除表c中所有数据;

truncate table c;

10、delete和truncate 的区别

在速度上,truncate>delete;

如果想删除部分数据用delete,注意带上where条件;

如果想保留表而将所有数据删除,自增长字段恢复从1开始,用truncate。

11、drop table 删除表

  • 语法一: drop table 表名;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pkD0Akmb-1649167151746)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648799056033.png)]

     drop table a;
  • 语法二: drop table if exists ;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sgrYQhTV-1649167151748)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648799029851.png)]

   drop  table  if  exists  a;

四、字段的约束

  • 创建带约束的字段的语法格式
create table 表名(

   字段名 数据类型 约束,

   字段名 数据类型 约束

   ...

);
  • 常用约束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tdNur7aR-1649167151750)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648866516465.png)]

1、主键

主键的值不能重复 primary key

自增长 ,auto_increment,值会系统自动维护,自动增长

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tQoFTF8t-1649167151751)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648870583107.png)]

create table d(

​    id int unsigned primary key,

​    name varchar(10),

​    age int

);

insert into d (name,age) values ('xiao',30);

insert into d (id,name,age) values (6,'hui',23);                  插入时指定了id的值

inset into d (name,age) values ('tian ', 54);                      插入时未指定id的值,输出为7

select *from d; 
  • 如果不指定字段,主键自增长字段的值可以用占位符,0或null
insert into d values (0,'kang' ,37);

insert into d values (null,'yang',23);

select * from d;

2、非空

非空 not null 这个字段必须有值,如果没有,insert插入会失败

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hyu9vurS-1649167151753)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648891505708.png)]

create table e (

  id int unsigned,

   name varchar(10) not null,

   age int

);

insert into e  values (1 ,'张三'20)insert into e (id ,age) values (1,23);       错误  

select * from e ;

3、唯一

唯一 unique 字段的约束为唯一,表示字段的值不能重复

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6BAAvQPe-1649167151754)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648900902848.png)]

create table f(

   id int,

   name varchar(10) unique,

   age int);

insert into f vaues (1,'z',23);

insert into f value (2,'z',23);               错误

select * from f;

4、默认值约束

默认值约束default 值 当一个字段有默认值约束时,如果指定了值,那么默认值无效;如果没指定默认值,会使用默认值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTQr8zoH-1649167151756)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1648903855008.png)]

create table g(

   id int,

   name varchar(10),

   age int default 30)insert into g value (1,'zhangsan',20);

insert into g (id,name) value (2,'lisi');      插入时不指定age

5、别名

字段的别名 as

通过as给字段起一个别名,别名可以中文

select card as 身份证 ,name as 姓名, sex as 性别 from students;

别名的as可以省略

字段名+as+别名 和 字段名 + 别名效果一样

表的别名 as

通过as给表起一个别名,as可以省略

select  * from students as stu;

select  * from students stu;

6、消除重复记录 distinct

通过select distinct +字段名,字段名+from 表名 来过滤select查询结果中的重复记录;

select  distinct sex , class from students;

select distinct * from students;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值