设为首页 收藏本站
查看: 1039|回复: 0

[经验分享] SQL学习之一基础命令

[复制链接]

尚未签到

发表于 2018-10-21 10:28:30 | 显示全部楼层 |阅读模式
  一、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;
DSC0000.png

  注意:在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 列名 运算符 值;
  这里的运算符包含=(等于)、(或!=,不等于)、>=(大于等于)、(大于)、 select name from students where sex = 'man';  这样会列出‘zhangsan’,‘wangwu’二个值。
  ②从students表中列出所有ID不超过3的学生:
mysql> select name from students where id  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  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:设置主键自增长。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624389-1-1.html 上篇帖子: Lync Server 2013 部署 _ Lync Server 边缘高可用(DNS轮询) 下篇帖子: SQL SEVER 安装出错:Error Code: 0x80070643 (1603)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表