千家信息网

SQL学习之一基础命令

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,一、SQL语法1、数据库表一个数据库通常包含一个或多个表。每个表由一个名字标识,表包含带有数据的行。2、大小写SQL对大小写不敏感。3、SQL语句后的分号某些数据库要求在每条SQL命令的末尾使用分号,
千家信息网最后更新 2025年01月21日SQL学习之一基础命令

一、SQL语法

1、数据库表

一个数据库通常包含一个或多个表。每个表由一个名字标识,表包含带有数据的行。

2、大小写

SQL对大小写不敏感。

3、SQL语句后的分号

某些数据库要求在每条SQL命令的末尾使用分号,比如mysql。

4、SQL的DML和DDL

可以把SQL分为两个部分:DML(data manipulation language数据操作语言)和DDL(data definition language数据定义语言)

查询和更新数据的指令构成了SQL的DML部分:

select -- 从数据库表中读取数据

update -- 更新数据库表中的数据

delete -- 从数据库表中删除数据

insert into -- 向数据库表中插入数据

SQL的DDL部分指创建或删除表格,更新表结构,定义索引,规定表之间的链接,施加表间的约束的命令。

create database -- 创建新数据库

alter database -- 修改数据库

create table -- 创建新表

alter table -- 更新表结构

drop table -- 删除表

create index -- 创建索引

drop index -- 删除索引

二、创建一个实例

以MySQL为例:

mysql> create database study;mysql> use study;mysql> create table students(id int auto_increment primary key,name varchar(255),sex char(10));mysql> insert into students (name,sex) values ('zhangsan','man'),('lisi','woman'),('wangwu','man'),('zhaoliu','woman');mysql> select * from students;

注意:在MySQL中值除了数字之外,都需要用''包含。

三、基础SQL语句

1、select:用于从表中获取数据。

格式:select 列名 from 表名;

例子:

①从students表中选取所有的学生姓名:

mysql> select name from students;

②从students表中选取所有的学生姓名和性别:

mysql> select name,sex from students;

多个列名之间用逗号隔开。

③查看students表中的所有数据:

mysql> select * from students;

"*"代表所有的列名。

2、distinct:在表中,可能包含有重复的数据,但是有时希望仅仅列出不同的值。这时使用distinct返回唯一不同的值。

格式:select distinct 列名 from 表名;

例子:

①从students表中列出所有的性别(……):

mysql> select distinct sex from students;+-------+| sex   |+-------+| man   || woman |+-------+        man和woman各被列出一次。

3、where:用于有条件地从表中获取数据,通常和select一起使用。

格式:select 列名 from 表名 where 列名 运算符 值;

这里的运算符包含=(等于)、<>(或!=,不等于)、>=(大于等于)、<=(小于等于)、>(大于)、<(小于)、between(在某个范围内)、like(以某种模式)

例子:

①从students表中列出所有性别为"man"的学生:

mysql> select name from students where sex = 'man';

这样会列出'zhangsan','wangwu'二个值。

②从students表中列出所有ID不超过3的学生:

mysql> select name from students where id <= 3;

这样会列出'zhangsan','lisi','wangwu'三个值。

③从students表中列出所有ID在2和3之间的学生:

mysql> select name from students where id between 2 and 3;

这样会列出'lisi','wangwu'二个值。不同的数据库对两个边界值(2和3)的处理方式不同,mysql会列出包含2和3的列,但是有些数据库不会列出。

4、and和or:用于对一个以上的记录进行过滤。可以在where子句中把两个或多个条件结合起来。

例子:

①从students表中列出ID不超过3,且性别为女的学生姓名:

mysql> select name from students where id <=3 and sex='woman';

这样会列出'lisi'一个值。

5、order by:用于对获取的结果进行排序。默认是对结果进行升序排序,可以使用desc关键字对结果进行降序排序。

例子:

①对students表中的姓名按照字母顺序显示:

mysql> select name from students order by name;

②对students表中的姓名按照id由大到小显示:

mysql> select id,name from students order by id desc;

6、insert into:用于向表中插入新的行(数据)。

格式:insert into 表名 values (值1,值2,……);

向指定的列插入数据:insert into 表名 (列1,列2,……)values (值1,值2,……);

例子:

①向students表中插入一行,id 5,姓名 qianqi,性别 woman:

mysql> insert into students values (5,'qianqi','woman');

②向students表中插入两行:

mysql> insert into students (name,sex) values ('sunba','man'),('wujiu','man');

一个()里是一行,多行用逗号","隔开。

7、update:用于修改表中的数据。

格式:update 表名 set 列名=新值 where 列名=某值;两个列为不同的列。

例子:

①将students表中zhangsan的性别改为woman:

mysql> update students set sex='woman' where name='zhangsan';

8、delete:用于删除表中的行(数据)。

格式:delete from 表名 where 列名=值;

例子:

①从students表中删除姓名为wujiu的行:

mysql> delete from students where name='wujiu';

②删除students表中所有的行:

mysql> delete from students;或者mysql> delete * from students;

这样只会删除表中的所有数据,并不会删除表结构、索引、属性。

9、alter:用于在数据表中添加、修改、删除列,修改表名称。

①向表中添加一列:

格式:alter table 表名 add 列名 数据类型;

例子:向students表中添加一列'age',数据类型'int':

mysql> alter table students add age int;

②修改表中某一列的列名:

格式:alter table 表名 change 现在的列名 修改后的列名 数据类型;

例子:修改students表中'name'为'perons':

mysql> alter table students change name persons varchar(255);

③修改表中某一列的数据类型:

格式:alter table 表名 modify 列名 修改后的数据类型

例子:将students表中persons的数据类型改为char(100):

mysql> alter table students modify persons char(100);

④修改表名

格式:alter table 表名 rename 修改后的表名;

例子:将students表的表名改为learners:

mysql> alter table students rename learners;

⑤删除表中的某一列

格式:alter table 表名 drop 列名;

例子:删除learners表中的age列:

mysql> alter table learners drop age;

10、drop:用来删除数据库表、索引。

①删除数据库:

格式:drop database 数据库名

②删除数据表:

格式:drop table 数据表名

③删除索引,用于MySQL的语法:

格式:alter table 表名 drop 索引名称

11、primary key:主键,唯一标识数据库表中的每条记录。

主键必须唯一,且不能包含空值。每个表都应该有一个主键,并且每个表只能有一个主键。

在实例中是把id设为了主键,在创建表的时候在id后面加上primary key。

12、auto_increment:设置主键自增长。








0