电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

1076

主题

1076

帖子

1万

积分

论坛法老

Rank: 6Rank: 6

积分
11451
发表于 2023-11-2 08:30:00 | 显示全部楼层 |阅读模式
点击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号
7 N' G# x3 c2 q干货福利,第一时间送达!$ h( y* [! o9 }

( o6 ?$ E9 M0 _; F7 T

u5bam05hm1364021817224.png

u5bam05hm1364021817224.png
& _+ X1 O; O/ @' J+ [3 ?
最近有小伙伴说没有收到当天的文章推送,这是因为微信改了推送机制,有一部分小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了,建议大家加个星标??,就能第一时间收到推送。: \  N$ q+ c$ u1 p& d

ewngx2akvah64021817324.png

ewngx2akvah64021817324.png

# J0 Y; g7 F8 U0 Z2 m小伙伴们大家好,我是飞宇。
- B1 q, G$ u5 X) N; ]& J今天来分享一下SQL常见知识点总结,全文一共一万五千字,建议收藏起来!7 B9 `* b0 R% V3 ~- ?4 J2 ?

2 o( d! _/ F4 x$ q第一章 SQL的介绍/ Z* D& M4 y  L+ x8 U
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语法不区分大小写
    ) ?/ f8 C" A: J3 o. B; u7 r' FMySQL的关键字和函数名等不区分大小写,但是对于数据值是否区分大小写,和字符集与校对规则有关。
    : M7 [' J- t4 l7 z- C$ xci(大小写不敏感),cs(大小写敏感),_bin(二元,即比较是基于字符编码的值而与language无关,区分大小写)
    8 C2 N) B; ]0 Q4 U/ z: a+ `(2)命名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号user_id) t* ~0 G+ `. {8 O- O( Q; v
    (3)建议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来0 A. h4 H3 E% B& a4 B2 l
    (4)数据库和表名、字段名等对象名中间不要包含空格
    ) `: \1 I, F" W(5)同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名
    ; M2 A+ b  ?+ r6 i3 V(6)标点符号:
    + P; i, L  s! v: k( Z
  • 必须成对
  • 必须英文状态下半角输入方式
  • 字符串和日期类型可以使用单引号’’
  • 列的别名可以使用双引号"",给表名取别名不要使用双引号。取别名时as可以省略
  • 如果列的别名没有包含空格,可以省略双引号,如果有空格双引号不能省略。(7)SQL脚本中如何加注释4 F, g5 @8 v: a3 o9 G$ ^" w% U5 b
  • 单行注释:#注释内容
  • 单行注释:–空格注释内容 其中–后面的空格必须有
  • 多行注释:/* 注释内容 */#以下两句是一样的,不区分大小写* B" T5 Y, }1 ~; E
    show databases;; N) A2 N6 X# K/ \
    SHOW DATABASES;% R' U2 ~/ `! ]2 {) k8 V% h
    #创建表格
    : o" w4 U  z" n3 \6 g" J* i' P#create table student info(...); #表名错误,因为表名有空格# p# a! o  u2 u4 R  C' t
    create table student_info(...); # ?3 U) W  R3 M, l; d0 D0 N4 n
    #其中name使用``飘号,因为name和系统关键字或系统函数名等预定义标识符重名了。
    ( z: D+ F9 Y, U) I. @CREATE TABLE t_stu(
    , g$ c: g3 c* D    id INT,
    & x' Z# p9 `+ W4 a$ v9 M, l    `name` VARCHAR(20)
    ( Y0 N. i+ ]" y7 Y) Y( \% x);! C. Z  O" o9 B) ~! X  W% m# A2 S
    select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略4 c3 V: T, Y3 ]" ~! S2 S. k+ V  g* ?
    select id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""
    0 c) H* p$ m2 R' qselect id as 编 号, `name` as 姓 名 from t_stu; #错误,如果字段别名中有空格,那么不能省略""8 B* E7 ]  i5 D& J2 H! V
    第二章-DDL操作数据库2.1、创建数据库(掌握)
  • 语法create database 数据库名 [character set 字符集][collate  校对规则]     注: []意思是可选的意思
    , P- ]0 ?  W( ?; ^' Q6 t字符集(charset):是一套符号和编码。# j9 t# i' `7 Z1 q7 e! _" t
  • 练习创建一个day01的数据库(默认字符集)# j0 ^* U: b1 m2 ]0 x. u" O! S
    create database day01;$ C  e/ p  \* P( T3 H
    创建一个day01_2的数据库,指定字符集为gbk(了解)
    & @6 P+ W# y2 jcreate database day01_2 character set gbk;
    # L( |5 X# m# F2.2、查看所有的数据库
  • 查看所有的数据库语法$ m7 w" U  H. K1 ?" Y
    show databases;
    ( _' }: u' g3 ?" z. Z$ \8 \
  • 查看数据库的定义结构【了解】语法6 w) Z, \% t+ ^" F
    show create database 数据库名;- j, @2 {2 \" y( e* P4 p
    查看day01这个数据库的定义& a) C% x7 ~2 s8 {9 d' H
    show create database day01;
    5 ]$ M! Y" N( v: r. \; d/ |, Y& S2.3、删除数据库语法
    / F. d) W$ H( N+ f  v  }drop database 数据库名;, z1 {6 m: I9 ^# r3 M! F
    删除day01_2数据库" Z( k' ^: ?6 g1 o' Z* i) A0 v
    drop database day01_2;
    3 o) T4 J6 g0 m% P& Q. r8 s2.4、修改数据库【了解】语法
      U1 Y) N% L  a1 S5 Qalter database 数据库名 character set 字符集;0 s4 M# |. f6 _3 L! e  j: n- ~
    修改day01这个数据库的字符集(gbk); m) k7 H+ [; `1 W7 S+ e% H! Q
    alter database day01 character set gbk;
    2 A; Q4 f/ \' t注意:; Z8 v6 X3 T& R, n* k! x- l
  • 是utf8,不是utf-8
  • 不是修改数据库名2.5、其他操作切换数据库, 选定哪一个数据库- }+ l: |* t, a, f3 S/ W" ]7 B+ M
    use 数据库名;     //注意: 在创建表之前一定要指定数据库. use 数据库名7 y" M4 D& D( w; g% h0 P" W: j8 _
    练习: 使用day01
    9 t' ~  l. c1 y0 o7 D  k1 j9 ?use day01;( Y$ l( ?% G  r# f0 z" p; S! b
    查看正在使用的数据库
    * {0 R; Q9 @" r7 mselect database();
    $ A& \" H( f8 U! l3 ~第三章-DDL操作表3.1、创建表
  • 语法create table 表名(
    . R5 N0 b' U- \/ N. S 列名 类型 [约束],
    ) @8 ?& l4 K" X4 v$ Z 列名 类型 [约束]
    ) a( ~8 E, Q: S* g: ]; S+ ? ...
    % Y8 T2 Z/ u" H; D  - d0 h, y/ d$ J% s2 f+ b! R6 H
    );0 k8 z8 e6 q) N1 O* a$ v
  • 类型数值类型
    * ]- j, o1 l* a整型系列:xxxInt  h8 n, G7 u1 _9 U" D. N7 h' x
  • int(M),必须和unsigned zerofill一起使用才有意义
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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