sql入门及基础命令

       sql是编程中很重要的一个环节,会写sql,会写好的sql语句是程序高效率运行的保障,每一个编程工作者都要和数据库打交道,不管是什么样的数据库都少不了要写sql语句。本篇文章从0开始总结基础的sql语句,后续文章将逐步深入,总结有关sql的高级查询方面的知识。

一、概述:

1、什么是SQL

      SQL(Structs Query Lanauage):结构化查询语言,是与关系型数据库进行通信的标准语言。

2、SQL命令的分类:

   (1)DDL(data definition language):数据定义语言,主要命令有create,alter,drop等。DDL命令主要用于定义或者改变

数据的结构,数据类型,表于表之间的链接和约束及初始化工作上,大多在建表时使用。

   (2)DML(data manipulation language):数据操作语言,他们是insert,update,delete,(select)这几条命令是对数

库面的数据进行操作的语言。

   (3)DCL(data control language):数据控制语言,常用的有grant,revoke,deny等,是用来设置或者更改数据库用户,

者进行权限控制的命令。

二、常用的sql命令:

1、数据库级别的操作命令

(1)创建数据库:create database database_name;

(2)删除数据库:drop database database_name;

(3)查看当前用户下所有的数据库:show databases;

(4)切换用户下的数据库:use database_name;

(5)退出数据库环境:exit;

2、表结构方面的操作命令

(1)创建表:

create table table_name
(id         int(20)      not null       primary key       auto_increment,
 name       varchar(32)  not null       comment"用户名称",
 source     varchar(12)  not null       default"社区用户",
 inputtime  datatime     comment"登记时间"
);

备注:不指定not null时默认为null意为可为空,comment可以对字段添加备注,default可以设置字段的默认值。

(2)查看当前数据库中的所有表:show tables;

(3)查看一个表的表结构:describe table_name;

(4)删除一个表:drop table_name;

(5)删除表里面的某个字段:alter table table_name drop column_name;

         eg:alter table user drop role; 删除user表中的role字段

(6)向表里添加一个新的字段:alter table table_name add colume_name 数据类型  null/not null;

         eg:alter table user add type varchar(4)  not null;向user表中添加type字段

(7)修改表中某个字段的名称和类型:alter table table_name change old_column  new_column  数据类型  null/not nul;

         eg:alter table user change type user_type varchar(8) not null;修改user表中type字段的名称和类型

(8)修改某个字段的属性:alter table table_name modify column_name 属性;

         eg:alter table user modify type char(8)  not null;将user表中type字段字段类型从varchar改为char

(9)复制一张表,包括数据:create table new_table_name  as select * from old_table_name;

         eg:create table user_back as select * from user;将user表中的数据备份到user_back表中。

3、数据操作方面的命令

(1)向表里插入数据:insert命令

         a、向表里插入全部字段的值:insert into table_name values ('字段1值','字段2值',......,'字段n值');

         b、向表里插入部分字段的值:insert into table_name (字段1,字段2,......字段n) values ('字段1值','字段2值',......,'字段n值');

         注意:插入部分字段的值时,所有not null的字段必须包含其中,可以有null的字段包含其中,表示默认为null,字段与字段值

相对应。

         c、一次性向表里插入多条记录:insert into .......values ('字段1值','字段2值',......,'字段n值'),('字段1值','字段2值',......,'字段

n值'),('字段1值','字段2值',......,'字段n值'),.....,('字段1值','字段2值',......,'字段n值');

(2)更新表里面的数据:update命令

         update table_name  set  column1 = 'value1',column2 = 'value2',......,columnn = 'valuen'  [where   conditions];

         说明:set后面可以更新多个字段,用逗号分隔,where语句可选,不带where字句更新字段所有值,带where时根

据conditions更新满足条件的数据。

(3)删除表里面的数据:delete/truncate

        delete from table_name [where conditions];

        说明:delete命令不跟where子句可以清空表中所有记录,跟where子句根据conditions删除满足条件的记录。

        truncate table_name;

        说明:truncate命令清空表里面的所有数据。

        delete与truncate的区别:

        a、truncate属于DDL语句,而delete属于DML语句。所以truncate不能使用rollback回滚,而delete则可以。

        b、truncate命令不能出发任何delete触发器。

        c、使用truncate命令清除数据后表的高水平线和索引将重新被初始化。

        d、truncate命令只能全表数据清除,而delete可以有选择的删除表中的数据,并且使用turncate清表的速度要比delete块。

4、查询方面的命令:select语句

 select * | (distinct) column1,column2,....,columnn  from  table1[,table2....] where conditions group by column1,column2 order by  column1,column2  [ASC|DESC]   [limit];

(1)order by:排序,使查询输出的结果按照order by后面指定的字段升序或者降序排列。ASC默认为升序,DESC表示为降序,order by后面有多个字段时,先按照第一个字段排序,然后再按照第二个字段排序,以此类推,也可以用数字代替具体的字段名称,select后面的第一个字段用数字1代替,第二个字段用2代替,以此类推。

(2)distinct关键字用于去除重复数据,在查询的字段名称前面加上distinct关键字可以对查询的结果按照该字段去重。

(3)查询多个字段时,字段之间以逗号相隔,where语句中有多个条件时,用and连接。

(4)limit可以限制查询显示的的行数,limit m表示显示查询结果的前m条,limit m,n表示显示查询结果的m到n条。limit也可以用到update或者delete语句中,限制更新或者删除的行数。

三、sql中的操作符

操作符一般用在select命令的where子句中为返回数据指定更明确的条件。

1、比较运算符:=(等于),<>|!=(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于)

2、算术操作符:+,-,*,/;

3、逻辑操作符:is null,between.......and,in,like,exits,unique,and,or。not用于逻辑操作符前面表示求反。

eg1:select * from interface_info where interfacename is not null  and  id between '110' and '210'   and  rowid in('A110','A112');
eg2:select id,name from interface_info where rowid like 'A%';          

        

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值