SQL语句相关概念及练习之基础篇(1)
写在前面:最近在上海找工作,前前后后面试了N家单位,发现各个公司对程序员的数据库知识尤其是SQL语句的掌握程度有很高的要求,作为一名光荣的程序员,不会玩儿SQL语句走在街上根本不好意思和人打招呼!好了,废话不多说,新手菜鸟同志们了注意了,这篇文章提供的例子很简单,但是也很重要,请认真练习!别等到面试的时候被某些人嘲讽"唉!这年头,会写SQL语句的程序员越来越少了!L"老鸟高手同志们,你们可以优雅地飘过,但是有什么意见或建议都要提出来哦,大家一起进步嘛J,让菜鸟变成高手,提高我国的编程水平。
一、SQL 基础知识
1、DDL(数据定义语言)
1)创建数据表
- --创建数据表
- create table Test(Id int not null, Age char(20));
- --创建数据表
- create table T_Person1(Id int not null,
- Name nvarchar(50),
- Age int null);
- --创建表,添加外键
- Create table T_Students(
- StudentNo char(4),
- CourseNo char(4),
- Score int,
- Primary key(StudentNo),
- Foreign key(CourseNo) References T_Course(CourseNo)
- );
2)修改表结构
- --修改表结构,添加字段
- Alter table T_Person add NickName nvarchar(50) null;
- --修改表结构,删除字段
- Alter table T_Person Drop NickName;
3)删除数据表
- --删除数据表
- Drop table T_Person;
- --删除数据表
- drop table test
4)创建索引
- Create [Unique] Index <索引名> on <基本表名>(<列明序列>);
2、DML数据操纵语言)
1)插入语句
- insert into T_Person1(Id,Name,Age) values(1,'Vicky',20)
- --插入一条据数,字段和值必须前后对应
- insert into T_Preson1(Id,Name,Age) values(2,'Tom',19)
- insert into T_Person1(Id,Name,Age) values(4,'Jim',19)
- insert into T_Person1(Id,Name,Age) values(5,'Green',20)
- insert into T_Person1(Id,Name,Age) values(6,'Hanmeimei',21)
- insert into T_Person1(Id,Name,Age) values(7,'Lilei',22)
- insert into T_Person1(Id,Name,Age) values(8,'Sky',23)
- insert into T_Person1(Id,Name,Age) values(newid(),'Tom',19)
2)更新语句
- --修改列,把所有的age字段改为30
- update T_Person1 set age=30
- --把所有的Age字段和Name字段设置为...
- update T_Person1 set Age=50,Name='Lucy'
- update T_Person1 set Name='Frankie' where Age=30
- update T_Person1 set Name=N'中文字符' where Age=20
- --中文字符前面最好加上N,以防出现乱码
- update T_Person1 set Name=N'成年人' where Age=30 or Age=50
3)删除语句
- delete from T_Person1
- --删除表中全部数据
- delete from T_Person1 where Name='Tom'
- --根据条件删除数据
4)查询语句
查询语句非常强大,几乎可以查任意东西!
- -----------------
- ---- 数据检索 -----
- -----------------
- --查询不与任何表关联的数据.
- SELECT 1+1; --简单运算
- select 1+2 as 结果
- SELECT newid();--查询一个GUID字符创
- select GETDATE() as 日期 --查询日期
- --可以查询SQLServer版本
- select @@VERSION as SQLServer版本
- --一次查询多个
- select 1+1 结果, GETDATE() as 日期, @@VERSION as 版本, NEWID() as 编号
- --简单的数据查询.HelloWorld级别
- SELECT * FROM T_Employee;
- --只查询需要的列.
- SELECT FNumber FROM T_Employee;
- --给列取别名.As关键字
- SELECT FNumber AS 编号, FName AS 姓名 FROM T_Employee;
- --使用 WHERE 查询符合条件的记录.
- SELECT FName FROM T_Employee WHERE FSalary<5000;
- --对表记录进行排序,默认排序规则是ASC
- SELECT * FROM T_Employee ORDER BY FAge ASC,FSalary DESC;
- --ORDER BY 子句要放在 WHERE 子句之后.
- SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC;
- --WHERE 中可以使用的逻辑运算符:or、and、not、<、>、=、>=、<=、!=、<>等.
- --模糊匹配,首字母未知.
- SELECT * FROM T_Employee WHERE FName LIKE '_arry';
- --模糊匹配,前后多个字符未知.
- SELECT * FROM T_Employee WHERE FName LIKE '%n%';
- --NULL 表示"不知道",有 NULL 参与的运算结果一般都为 NULL.
- --查询数据是否为 NULL,不能用 = 、!= 或 <>,要用IS关键字
- SELECT * FROM T_Employee WHERE FName IS NULL;
- SELECT * FROM T_Employee WHERE FName IS NOT NULL;
- --查询在某个范围内的数据,IN 表示包含于,IN后面是一个集合
- SELECT * FROM T_Employee WHERE FAge IN (23, 25, 28);
- --下面两条查询语句等价。
- SELECT * FROM T_Employee WHERE FAge>=23 AND FAge<=30;
- SELECT * FROM T_Employee WHERE FAge BETWEEN 23 AND 30;
- ----创建一张Employee表,以下几个Demo中会用的这张表中的数据
- ----在SQL管理器中执行下面的SQL语句,在T_Employee表中进行练习
- create table T_Employee(FNumber varchar(20),
- FName varchar(20),
- FAge int,
- FSalary Numeric(10,2),
- primary key (FNumber)
- )
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('DEV001','Tom',25,8300)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('DEV002','Jerry',28,2300.83)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('SALES001','Lucy',25,5000)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('SALES002','Lily',25,6200)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('SALES003','Vicky',25,1200)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('HR001','James',23,2200.88)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('HR002','Tom',25,5100.36)
- insert into T_Employee(FNumber,FName,FAge,FSalary) values('IT001','Tom',28,3900)
- insert into T_Employee(FNumber,FAge,FSalary) values('IT002',25,3800)
- --开始对T_Employee表进行各种操作
- --检索所有字段
- select * from T_Employee
- --只检索特定字段
- select FName,FAge from T_Employee
- --带过滤条件的检索
- select * from T_Employee
- where FSalary<5000
- --可更改显示列名的关键字as,as—起别名
- select FName as 姓名,FAge as 年龄,FSalary as 薪水 from T_Employee
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。