数据库1——SQL语言基础

背景知识:

1.SQL语言:结构化查询语言(Structured Query Language)  可以通过SQL语言操作oracle、mysql、sql server、sqlite等所有关系型数据库

2.SQL语言主要分为:

  • DQL:数据查询语言,对数据进行查询,如select
  • DDL:数据定义语言,进行数据库、表的管理等,如create、drop
  • DML:数据操作语言,对数据进行增、删、改,如insert、update、delete
  • TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback

 


一、基本语法

1.SQL语句注释:

  • 单行注释:--注释内容
  • 多行注释:/*注释内容*/

2.MySQL常用数据类型

  • 整数:int,有符号范围(-2147483648,2147483647),无符号范围(0,4294967295),int unsigned
  • 小整数:tinyint,有符号整数(-128,127),无符号范围(0,255)
  • 小数:decimal,如decimal(5,2)表示存5位数,小数占2位,不能超过2位;整数占3位,不能超过3位
  • 字符串:varchar,如varchar(3)表示最多存3个字符,一个中文或一个字母都占一个字符
  • 日期时间:datetime,范围(1000-01-01 00:00:00~9999-12-31 23:59:59)

3.数据库中的元素

  • 数据库(database)
  • 表(table):行与列组成的二维表格
  • 字段(field):表中的列
  • 记录(record):表中的一行

 

二、SQL语句

1. CREATE TABLE 创建表

语法:

    create table 表名(

      字段名 数据类型,

      字段名 数据类型

      ......

    );

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

  create table a(name varchar(10));

例2:创建表c,字段要求:id,数据类型为int;name(姓名),数据类型为varchar,长度为20;age(年龄),数据类型为tinyint unsigned;

  create table c(

         id int,

         name varchar(20),

         age  tinyint unsigned

  );

 

2. INSERT 添加数据

(1)插入一条数据:

语法1:(所有字段设置值,值的顺序与表中字段的顺序对应)

  insert into 表名 values(值,值,值...);

例1:表c插入一条数据

  insert into c values(1,'liu',30);

 

语法2:(部分字段设置值,值的顺序与给出的字段顺序对应)

  insert into 表名 (字段名,字段名,字段名...)values(值,值,值...);

例2:表c插入一条数据,只设置id和姓名name

  insert into c (id,name)values(2,'zhou');

(2)插入多条数据:

语法1:(写多条insert语句,语句之间用英文分号隔开)

例3:表c插入三条记录

  insert into c values(5,'周瑜',25);

  insert into c (id,name) values(6,'鲁肃');

  insert into c (name) values('小乔');

语法2:(写一条insert语句,添加多条记录,数据之间用逗号隔开)

  insert into 表名 values (值,值...),(值,值...)...(值,值...);

例4:表c插入三条记录

  insert into c values(10,'张三',10),

  (11,'李四',20),

   (12,'王五',30);

语法3:(写一条insert语句,添加多条记录,数据之间用逗号隔开,设置指定字段)

  insert into 表名 (字段名,字段名...)values (值,值...),(值,值...)...(值,值...);

例5:表c插入三条记录

  insert into c  (id,name)values(13,'光绪'),

  (14,'康熙'),

   (15,'雍正');

 

3. SELECT 简单查询

(1)查询所有字段:

语法1:

  select  *  from  表名;(*是按照建表顺序显示字段名,想调整顺序可在语法2调整)

(2)查询部分字段:

语法2:

  select  字段名,字段名...  from  表名;

 

4.UPDATE 修改数据

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

 

例1:修改表c,所有人age字段改为50

  update c set age=50;

例2:修改表c,id为2的人name字段改为‘狄仁杰’,age字段改为20

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

例3:修改表c,name为刘备的记录该为李白

  update c  set  name='李白'  where  name='刘备';

例3:修改表c,id>10的涨一岁

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

 

5.DELETE删除表中的记录

语法:delete from 表名  where 条件;

 

例1:删除表c中id为6的记录

  delete from c  where id=6;

例2:删除表c所有记录

  delete from c ;

 

6.TRUNCATE删除表中的记录

语法:truncate table 表名 ;(删除表中所有记录,保留表结构)

例1:删除表c所有数据

  truncate table c;

delete与truncate的区别

  • 在速度上,truncate>delete;
  • 如果想删除部分数据智能用delete,注意带where子句;
  • 如果想保留表而将所有数据删除,自增长字段恢复从1开始,用truncate。

 

7.DROP TABLE删除表

语法1:drop table 表名;

例1:删除表a

  drop table a;

语法2:drop table if exists 表名;

例1:如果表a存在删除表a

  drop table if  exists a;

 

posted @ 2026-11-04 17:37  da呼吸家  阅读(4)  评论(0)    收藏  举报