电子产业一站式赋能平台

PCB联盟网

搜索
查看: 52|回复: 0
收起左侧

一万五千字!你最常用的 SQL 这些核心知识点,我都帮你准备好了!

[复制链接]

864

主题

864

帖子

8156

积分

高级会员

Rank: 5Rank: 5

积分
8156
发表于 2023-11-2 08:30:00 | 显示全部楼层 |阅读模式
点击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号, `" T; A3 e% u, p% {
干货福利,第一时间送达!2 _9 @$ T: C* e
# J9 L, e/ ~9 J0 g$ p. h

u5bam05hm1364021817224.png

u5bam05hm1364021817224.png
  ~  Y) M" J6 I
最近有小伙伴说没有收到当天的文章推送,这是因为微信改了推送机制,有一部分小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了,建议大家加个星标??,就能第一时间收到推送。
! }. [% ^( n# f; E: G/ B; W* U# j

ewngx2akvah64021817324.png

ewngx2akvah64021817324.png
7 m& c/ y( @5 J! k( J
小伙伴们大家好,我是飞宇。
) E% ?! {6 j) c8 m! |! i4 ~2 Q4 N今天来分享一下SQL常见知识点总结,全文一共一万五千字,建议收藏起来!+ @+ O: \0 B! w

0 u" l, U# U( U第一章 SQL的介绍; o/ @1 l% p6 y4 ]7 S6 z0 Y. _- ^
1.1、什么是sql
  • SQL:Structure Query Language。(结构化查询语言),通过sql操作数据库(操作数据库,操作表,操作数据)
  • SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准
  • 各数据库厂商(MySql,oracle,sql server)都支持ISO的SQL标准。
  • 各数据库厂商在标准的基础上做了自己的扩展。各个数据库自己特定的语法1.2、sql的分类
  • Data Definition Language (DDL数据定义语言) 如:操作数据库,操作表
  • Data Manipulation Language(DML数据操纵语言),如:对表中的记录操作增删改
  • Data Query Language(DQL 数据查询语言),如:对表中数据的查询操作
  • Data Control Language(DCL 数据控制语言),如:对用户权限的设置1.3、MySQL的语法规范和要求(1)mysql的sql语法不区分大小写
    : S( b# r3 M" q. U, C/ Y$ s; R. B2 X0 UMySQL的关键字和函数名等不区分大小写,但是对于数据值是否区分大小写,和字符集与校对规则有关。; |( U# p0 Q4 V4 |0 s5 w0 o, j' l
    ci(大小写不敏感),cs(大小写敏感),_bin(二元,即比较是基于字符编码的值而与language无关,区分大小写)
    ' G: z( b: {4 M, g4 D, {(2)命名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号user_id: A# `5 R/ Y2 n- {! b
    (3)建议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来# V* k+ H# }1 o7 q# W3 Z
    (4)数据库和表名、字段名等对象名中间不要包含空格
    " k8 [% K  j2 q+ Q+ E(5)同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名6 q) W0 G9 H4 _9 o$ }# m% w9 f; `
    (6)标点符号:+ M/ ]( o. R1 y+ V5 H
  • 必须成对
  • 必须英文状态下半角输入方式
  • 字符串和日期类型可以使用单引号’’
  • 列的别名可以使用双引号"",给表名取别名不要使用双引号。取别名时as可以省略
  • 如果列的别名没有包含空格,可以省略双引号,如果有空格双引号不能省略。(7)SQL脚本中如何加注释6 e: [! o% L  ^6 S
  • 单行注释:#注释内容
  • 单行注释:–空格注释内容 其中–后面的空格必须有
  • 多行注释:/* 注释内容 */#以下两句是一样的,不区分大小写% ~$ @7 ^1 |2 p6 c2 l8 s
    show databases;
    ; m2 A; H0 K1 N2 D7 l, M5 H$ l5 oSHOW DATABASES;. }) U" P: E8 r' \' p9 l  P; b
    #创建表格' F! |6 }0 `; C
    #create table student info(...); #表名错误,因为表名有空格
    9 P9 x) e! b# ^' I& dcreate table student_info(...); " o' w! `9 Z5 J2 y- r
    #其中name使用``飘号,因为name和系统关键字或系统函数名等预定义标识符重名了。
    # ~1 Y4 f5 E4 X3 L7 d- u& O; yCREATE TABLE t_stu(- l% `: q1 H& k. ?  z; a8 t' b
        id INT,  p! w2 N! a* ^( X
        `name` VARCHAR(20)4 J8 @7 K0 k6 g9 R
    );; {. J. c4 S& ~% ^, b/ O: ]# e
    select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略
    - }* F& ?3 N& y+ A- d% Vselect id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""' Y6 E8 Q4 d8 j% I: C
    select id as 编 号, `name` as 姓 名 from t_stu; #错误,如果字段别名中有空格,那么不能省略""5 Z; [+ M0 Q7 W- A0 p: _% I
    第二章-DDL操作数据库2.1、创建数据库(掌握)
  • 语法create database 数据库名 [character set 字符集][collate  校对规则]     注: []意思是可选的意思
    : t- E5 e0 B' s7 @7 T字符集(charset):是一套符号和编码。
    $ ]: ]8 E/ [: K0 g3 `* E/ g
  • 练习创建一个day01的数据库(默认字符集)
    # E/ Q4 x; z9 B6 u) O% S. screate database day01;
    1 [) Z. g( t0 \2 g8 n7 C创建一个day01_2的数据库,指定字符集为gbk(了解)1 G6 E5 [" b( m' Q1 _. N
    create database day01_2 character set gbk;
    * f. t3 @) s; L: v% h0 o2.2、查看所有的数据库
  • 查看所有的数据库语法
    1 b  \" |  V( \7 t( U2 Gshow databases; # G" ?% ?) _. f) t2 H2 n: N1 [8 K( B
  • 查看数据库的定义结构【了解】语法$ j; M  }7 T- M0 \9 U7 S7 a1 ?/ M
    show create database 数据库名;
    # h$ ^6 i  Y$ @' K3 a' C查看day01这个数据库的定义
    + r; ^8 `9 m/ g. l- S% |show create database day01; ' \" w; \6 n" }* M3 M
    2.3、删除数据库语法4 B9 i$ S1 g) F$ m$ k' z
    drop database 数据库名;
    1 z3 z  |6 f1 H) ]5 n删除day01_2数据库
    9 k4 [, d: P/ a2 jdrop database day01_2;* V' A& W/ q5 u% s4 g$ n: |
    2.4、修改数据库【了解】语法
    2 u7 _1 J7 ~, {; Z) S- Malter database 数据库名 character set 字符集;0 u7 R: `9 f) O# z3 w
    修改day01这个数据库的字符集(gbk)' b" G7 ~! C: G% Q1 c3 t
    alter database day01 character set gbk;
    " _3 \: u+ h( i注意:
    % e4 U9 p) K; Y2 s# `
  • 是utf8,不是utf-8
  • 不是修改数据库名2.5、其他操作切换数据库, 选定哪一个数据库9 V- u5 o1 R+ Q8 b( W
    use 数据库名;     //注意: 在创建表之前一定要指定数据库. use 数据库名
    2 L5 P' \7 V& g8 y6 U  q练习: 使用day01
    9 O8 i$ L) {' z1 f$ Luse day01;5 |' b5 G$ l/ R$ A
    查看正在使用的数据库2 y9 z  p- I9 S5 \6 U8 m$ c
    select database();
    1 f5 u" p9 |4 _' l3 p第三章-DDL操作表3.1、创建表
  • 语法create table 表名(
    7 w9 k7 ?4 J: u4 W5 V; ` 列名 类型 [约束],9 H0 j, ?7 c( L4 l# Q: A
    列名 类型 [约束]6 K* d3 W9 N6 U3 V8 O& v! E5 S
    ...
    ! v6 c" Z: b% ~  : |, f0 h7 u1 c1 @+ H
    );& z& B) Q9 b& G+ x2 D
  • 类型数值类型
    ) o3 H: c9 S; x! D整型系列:xxxInt
    0 Q, Q1 N9 [' j  h7 Y/ t
  • int(M),必须和unsigned zerofill一起使用才有意义
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表