T-SQL - 记录01_基础sql语句操作

  • 时间:2017-12-25 整理:byzqy

最近详细学习了一下MS SQL Server相关的知识,收获不小,在此记录一下,可能有点零散,后续会慢慢整理!

1、对数据库的一些认识

数据库中只认命令(脚本),所有的可视化操作实质上都是执行的SQL命令。

2、简单复习

1.数据库(要是使用数据库,首先需要打开服务),表(即数据表)

安装了几个数据库实例,就有几个数据库服务(服务器名称,貌似就是数据库实例名称)

2.创建数据库,创建表

3.数据类型

--带var表示不固定长度,不带var表示固定长度

--n表示使用Unicode保存,保存双字节字符,不带n的表示使用单字节字符保存

4.主键、外键(为了减少数据冗余)

--一个表中只能有一个主键,也可以没有主键(推荐表中要有主键)

--主键可以只由一个列组成,也可以由多个列组成

--有外键的表叫外键表,被引用的表叫主键表

5.t-sql语句创建数据库,创建表

--创建默认参数数据库:create database TestDB;

--创建表:create table MyTable(列名 数据类型 列的其他选项)

6.数据库的分离和附件(数据库分离之后,才能对数据库文件进行复制等操作)

3、关于SQL

SQL是最基本的命令;

T-SQL是微软对SQL的扩展(Teansact-SQL,Structured Query  Language);

PL/SQL是甲骨文对SQL的扩展。

SQL分类:

  DDL(数据定义语言)

  DML(数据操作语言)--我们程序员常用的

  DCL(数据控制语言)

4、C#和SQL的区别

  1. C# 中双引号表示字符串
     SQL 中使用单引号表示字符串

  2. C# 中使用==判断两个变量是否相等
     SQL 使用=表示两个值是否相等

  3. C# 严格区分大小写
     SQL 默认不区分大小写

  4. C# 中使用\(斜杠)来表示转义
     SQL 中使用‘(单引号)来表示转义

  5. SQL中的or相当于C#中的||(或者)
     C#中的!(非)对应SQL中的not
     C#中的&&(且)对应SQL中的and
     C#中的||(或)对用SQL中的or

5、C#中ADO.NET常用类

Connection 连接数据库
Command 执行sql语句
DataReader 读取数据
DataAdapter 封装上面三个对象的对象
DataSet 数据集



文件:SQLQuery4.sql

--1.创建数据库(不设置参数)
create database MyDatabaseOne;

--2.删除数据库
drop database MyDatabaseOne;

--3.创建数据库时设置一些参数选项
create database MydatabaseTwo
on primary
(
    --配置主数据文件的选项
    name=‘MyDatabaseTwo‘,--主数据文件的逻辑名称
    filename=‘C:\DB_Test\MyDatabaseTwo.mdf‘,--主数据文件的实际保存路径
    size=5MB,
    maxsize=150MB,
    filegrowth=20%
)
log on
(
    --配置日志文件的选项
    name=‘MyDatabaseTwo_log‘,--日志文件的逻辑名称
    filename=‘C:\DB_Test\MyDatabaseTwo_log.ldf‘,--日志文件的实质保存路径
    size=5MB,--日志文件的初始大小
    filegrowth=5MB
)
--此处可能会报错,是一个C盘权限的问题
--如果忘记命令,还可以通过鼠标操作生成脚本的方式查看命令

--4.在数据库中创建一张表
--在执行之前先要切换到要创建的数据库到当前

use School

create table [Departments]
(
    ID int identity(1,1) primary key,
    Name nvarchar(50) not null
)

--5.通过代码删除数据库和表

use School

drop database [MyDatabaseTwo]

drop table [Departments]

--6.通过代码创建员工表
use [School];

create table Employees
(
    ID int identity(1,1) primary key,
    IDCard varchar(18) not null,
    Name nvarchar(50) null,
    Gender bit not null,
    JoinDate datetime,
    Age int,
    Address nvarchar(300),
    PhoneNumber varchar(100),
    DeptID int not null,
    Email varchar(100)
)

--------------------------------------------
--7.创建学生表

create table Student
(
    id int identity(1,1) primary key,
    name nvarchar(50) not null,
    gender nchar(1),
    address nvarchar(500),
    age int,
    birthday datetime,
    card_id varchar(18),
    class_id int
)

--创建班级表
create table Class
(
    class_id int identity(1,1) primary key,
    class_name nvarchar(50)
)

--创建成绩表

create table Score
(
    score_id int identity(1,1) primary key,
    id int not null,--引用学生表中的学生id
    English float,
    Math float,
    Chinese float
)

--创建老师表

create table Teacher
(
    teacher_id int identity(1,1) primary key,
    teacher_name nvarchar(50) not null,
    gender bit,
    salary money,
    age int,
    birthday datetime
)

--8.向表中插入数据
/*
create table Class
(
    class_id int identity(1,1) primary key,
    class_name nvarchar(50)
)
*/
--①自动编号列,默认自动增长,不能也不需要插入值
insert into [Class](class_name) values(‘.NET黑马一期‘)

select * from [Class]

--向学生表中插入一条数据
/*
create table Student
(
    id int identity(1,1) primary key,
    name nvarchar(50) not null,
    gender nchar(1),
    address nvarchar(500),
    age int,
    birthday datetime,
    card_id varchar(18),
    class_id int
)
*/
insert into [Student](name,gender,address,age,birthday,card_id,class_id)
values(‘刘德华‘,‘男‘,‘北京市海淀区‘,25,‘1970-10-10‘,‘123652199010021012‘,1)

--如果除自动编号列以外所有列都要插入时也可以省略列名
insert into [Student]
values(‘郭富城‘,‘男‘,‘北京市天安门‘,25,‘1988-10-10‘,‘123652569010021012‘,1)

--向部分列插入数据
insert into [Student](name,gender,age)
values(‘宋祖英‘,‘女‘,25)

--向自动编号列插入值
--a.需要启动某个表的"自动编号列"手动插入值的功能
--b.再次插入数据时,自动编号只会按照当前最大的编号增加

set identity_insert [Student] on    --打开插入自动编号功能
insert into [Student](id,name)
values(10,‘唐三藏‘)
set identity_insert [Student] off    --使用完后关闭插入自动编号列功能

--c.在插入字符串时如果包含中文一般在字符串引号前加上一个大写N,是为了防止"双字节字符乱码"(中文乱码)
--  在之前添加数据时,没有加N,也没有出现乱码,这跟当前的数据库排序规则有关(当前为简体中文排序规则)
insert into [Student](name)values(N‘猪八戒‘)

select * from [Student]

--小技巧:打开和关闭查询结果窗口:Ctrl + R
--9.数据更新(数据修改)
--修改[Student]表中gender等于‘女‘的行的数据,年龄减一,姓名后加‘<女>‘
update [Student] set age=age-1,name=name+‘<女>‘ where gender=‘女‘

select * from [Student]

--where中可以使用的其他逻辑运算符:
--or、and、not、<、>、>=、<=、<>(或!=)等

--10.删除数据
--删除表中所有数据
delete from [Student]

--删除表中指定数据(删除一部分数据)
delete from [Student] where gender=‘女‘

--删除表中的全部数据,有两种方式
--a.delete from [表名]
--b.truncate table [表名] (推荐使用这中方法)
truncate table [Student]
--truncate的特点:
--a.truncate语句不能跟where条件(无法根据条件删除,只能全部删除)
--b.truncate删除可以使自动编号恢复到初始值
--c.使用truncate删除表中的所有数据要比delete效率高很多
--d.truncate删除数据,不会触发dalete触发器
--e.truncate删除数据当这个表与其他表有主外键关联时,无法删除

select * from [Student]

--11.练习和整理

--创建数据库
create database [LiangshanHero]
--删除数据库
drop database [LiangshanHero]
--创建表
use [LiangshanHero]
go
create table [Hero]
(
    id int identity(1,1) primary key,
    name nvarchar(50) not null,
    nick_name nvarchar(50),
    star nvarchar(10),
    age int,
    hometown nvarchar(50),
    sex nchar(1),
    sal int
)
select * from [Hero]
--为表添加数据
insert into [Hero] values(‘宋江‘,‘及时雨‘,‘天魁星‘,28,‘山东‘,‘男‘,6000)
insert into [Hero] values(‘卢俊义‘,‘玉麒麟‘,‘天罡星‘,35,‘河北‘,‘男‘,7500)
insert into [Hero] values(‘吴用‘,‘智多星‘,‘天机星‘,31,‘黑龙江‘,‘男‘,1000)
insert into [Hero] values(‘公孙胜‘,‘入云龙‘,‘天闲星‘,32,‘重庆‘,‘男‘,5000)
insert into [Hero] values(‘关胜‘,‘大刀‘,‘天勇星‘,36,‘江苏‘,‘男‘,3500)
insert into [Hero] values(‘林冲‘,‘豹子头‘,‘天雄星‘,34,‘浙江‘,‘男‘,4000)
insert into [Hero] values(‘秦明‘,‘霹雳火‘,‘天猛星‘,35,‘上海‘,‘男‘,5500)
insert into [Hero] values(‘呼延灼‘,‘双鞭‘,‘天威星‘,33,‘湖南‘,‘男‘,2800)
insert into [Hero] values(‘花荣‘,‘小李广‘,‘天英星‘,24,‘湖北‘,‘男‘,3400)
insert into [Hero] values(‘柴进‘,‘小旋风‘,‘天贵星‘,26,‘广西‘,‘男‘,4800)
insert into [Hero] values(‘鲁智深‘,‘花和尚‘,‘天孤星‘,38,‘河南‘,‘男‘,5000)
insert into [Hero] values(‘武松‘,‘行者‘,‘天伤星‘,28,‘河南‘,‘男‘,2600)
insert into [Hero] values(‘史进‘,‘九纹龙‘,‘天微星‘,36,‘河南‘,‘男‘,8000)
insert into [Hero] values(‘扈三娘‘,‘一丈青‘,‘地慧星‘,28,‘云南‘,‘女‘,7000)
insert into [Hero] values(‘顾大嫂‘,‘母大虫‘,‘地阴星‘,37,‘贵州‘,‘女‘,6000)
insert into [Hero] values(‘孙二娘‘,‘母夜叉‘,‘地壮星‘,32,‘四川‘,‘女‘,5400)
insert into [Hero] values(‘石秀‘,null,null,null,null,null,null)
insert into [Hero] values(‘燕青‘,null,null,null,null,null,null)
insert into [Hero] values(‘阮小七‘,null,null,null,null,null,null)
insert into [Hero] values(‘李逵‘,null,null,null,null,null,null)

--查询所有数据
select * from [Hero]
--带条件查询
select name from [Hero] where sex=‘男‘
select count(*) as ‘工资大于5000人数‘ from hero where sal>=5000
--更新数据
update [Hero] set sal=sal*1.1 where sal<3000
--删除指定数据
delete from [Hero] where sex=‘女‘
--清空表中数据
truncate table [Hero]
--删除整张表(包括表结构和所有数据)
drop table [Hero]

--12.约束(保证数据完整性,约束是建立在表上的)
--约束大致分类
--a.非空约束
--b.主键约束(PK)primary key constraint唯一且不为空
--c.唯一约束(UQ)unique constraint唯一,允许为空,但只能出现一次
--d.默认约束(DF)default constraint默认值
--e.检查约束(CK)check constraint范围以及格式限制
--f.外键约束(FK)foreign key constraint表关系

--新建一张表(无约束的表)
use [School]
go
create table [Employees]
(
    id int identity(1,1),
    name nvarchar(50),
    gender char(2),
    age int,
    email varchar(100),
    home_address varchar(500)
)
create table [Department]
(
    dep_id int identity(1,1),
    dep_name varchar(50)
)

--删除表
drop table [Employees]
drop table [Department]

--查询数据
select * from [Employees]
select * from [Department]

--13.t-sql语句实现约束(手动增加约束)
--新建一张表(无约束的表)
use [School]
go
create table [Employees]
(
    id int identity(1,1),
    name nvarchar(50),
    gender char(2),
    age int,
    email varchar(100),
    home_address varchar(500)
)
create table [Department]
(
    dep_id int identity(1,1),
    dep_name varchar(50)
)

--增加约束-------------------------------------

--手动删除一列
alter table [Employees] drop column home_address

--手动增加一列
alter table [Employees] add home_address1 nvarchar(1000)

--手动修改一下某列的数据类型
alter table [Employees] alter column email varchar(200)

--为某列增加一个主键约束(修改表结构,增加约束,约束类型:主键约束)
alter table [Employees] add constraint PK_Employees_id primary key(id)

--为某列增加一个非空约束(以修改列的方式完成,增加一个not null关键字就好)
alter table [Employees] alter column name nvarchar(50) not null

--为某列增加一个唯一约束(唯一约束要求值不能重复,允许只能有一个空值)
alter table [Employees] add constraint UQ_Employees_name unique(name)

--为性别增加一个默认约束,默认值为‘男‘
alter table [Employees] add constraint DF_Employees_gender default(‘男‘) for gender

--为性别增加一个检查约束,要求性别只能是:‘男‘ or ‘女‘
alter table Employees add constraint CK_Employees_gender check(gender=‘男‘ or gender=‘女‘)

--为年龄增加一个检查约束:年龄必须在0-120岁之间,含岁与岁.
alter table [Employees] add constraint CK_Employees_age check(age>=0 and age<=120)

--为部门表设置主键,主键列:dep_id(即为部门表某列增加主键约束)
alter table [Department] add constraint PK_Employees_dep_id primary key(dep_id)

--为员工表增加列,部门ID:dep_id
alter table [Employees] add dep_id int not null

--增加某张表外键约束(命令后增加:on delete cascade 可实现级联删除)
alter table [Employees] add constraint FK_Employees_Department foreign key(dep_id) references Department(dep_id)

--删除约束--------------------------------
alter table [Employees] drop constraint FK_Employees_Department,CK_Employees_age,CK_Employees_gender,UQ_Employees_name,DF_Employees_gender

--通过一条代码来增加多个约束
alter table [Employees] add
constraint FK_Employees_Department foreign key(dep_id) references Department(dep_id),
constraint CK_Employees_gender check(gender=‘男‘ or gender=‘女‘),
constraint CK_Employees_age check(age>=0 and age<=120),
constraint UQ_Employees_name unique(name)

--创建表的同时就为表增加约束
use [School]
go
create table [Employees]
(
    id int identity(1,1) primary key,
    name nvarchar(50) not null unique check(len(name)>2),
    gender char(2) default(‘男‘),
    age int check(age>0 and age<120),
    email varchar(100) unique,
    home_address varchar(500) not null,
    dep_id int foreign key references [Department](dep_id) on delete cascade --添加外键约束,并设置可以级联删除
)
create table [Department]
(
    dep_id int identity(1,1) primary key,
    dep_name varchar(50) not null unique    --(唯一约束且不为空)
)
--小经验:以上代码在"一起执行"的时候会报错:外键 ‘FK__Employees__dep_i__7C4F7684‘ 引用了无效的表 ‘Department‘。
--这是因为在代码中先创建了员工表(外键表),之后才创建了部门表(主键表),外键表需要引用主键表,所有被引用的主键表需要先创建

--删除表
drop table [Employees]
drop table [Department]

--查询数据
select * from [Employees]
select * from [Department]

--14.数据检索(查询)
--*表示显示所有列
--查询语句没有加where条件表示查询所有行
select * from [Student]

--只查询部分列
select id,name,address from [Student] 

--只查询部分行(使用where条件筛选部分行显示)
select * from [Student] where class_id=1

--列别名(为查询结果集中的列起别名)
select id as 编号,name as 姓名,gender as 性别 from [Student]
--美化一下格式
select
    id as 编号,
    name as 姓名,
    gender as 性别
from [Student]
--列别名1(也可以把as省略掉)
select
    id 编号,
    name 姓名,
    gender 性别
from [Student]
----列别名2(也可以用引号把列名引起来)
select
    id ‘编 号‘,
    name ‘姓      名‘,
    gender ‘性别‘
from [Student]
--列别名3(也可以使用等号=的方式)
select
    编号=id,
    姓名=name,
    性别=gender
from [Student]

--查询结果中增加新列
select
    编号=id,
    姓名=name,
    性别=gender,
    婚否=‘否‘
from [Student]

--获取服务器时间(没有from,select也可以单独使用)
select
    当前系统时间=getdate()

--select单独使用
select
    班长=‘刘德华‘,
    班花=‘王美丽‘,
    班草=‘待定‘,
    班主任=‘习大大‘

--15.数据检索,关键字:top 、distinct(去重)
select distinct * from [Student]

--distinct关键字,针对已经查询出的结果去除重复

select distinct name,gender from [Student]

--top关键字一般都与order by连用

--排序order by
--按照年龄降序排序
select * from [Student] order by age desc
--按照年龄升序排序
select * from [Student] order by age asc
--默认排序(升序排序)
select * from [Student] order by age

--排序联系
use [LiangshanHero]
select * from [Hero] order by sal desc
select * from [Hero] order by sal

--查询工资最高的前5名
select top 5 * from [Hero] order by sal desc

--查询工资最低的前5名
select top 5 * from [Hero] order by sal asc

--top后面跟表达式,需要使用括号将表达式括起来
select top (2*2) * from [Hero] order by sal desc

--查看前百分之30工资最高的(如果百分比的结果不是整数条,会向上取整返回结果)
select top 30 percent * from [Hero] order by sal desc

--16.聚合函数
--sql聚合函数
--a.MAX(最大值)
--b.MIN(最小值)
--c.AVG(平均值)
--d.SUM(和)
--e.COUNT(计数)
--注意
--①聚合函数对null值不计算
--②如果一行的数据都是null,count(*)包含对空值行、重复行的统计

use [LiangshanHero]
go
create table [Hero]
(
    id int identity(1,1) primary key,
    name nvarchar(50) not null,
    nick_name nvarchar(50),
    star nvarchar(10),
    age int,
    hometown nvarchar(50),
    sex nchar(1),
    sal int
)
select * from [Hero]

--统计出所有人的年龄的总和
select sum(age) as 年龄总和 from [Hero]

--统计当前表中一共有多少条记录
select count(*) from [Hero]

--计算平均年龄
select
    平均年龄=(select sum(age) as 年龄总和 from [Hero])*1.0  --*1.0可以让数据变成小数
            /(select count(*) from [Hero])

--计算年龄最大的
select max(age) from [Hero]

--计算年龄最小的
select min(age) from [Hero]

--计算平均值avg
select avg(age) from [Hero]
select avg(age*1.0) from [Hero]    --将整型数据变为小数,或者直接将表中数据类型换为小数
--可以使用round()控制小数位数

--聚合函数的一下其他问题----------
--①聚合函数不统计空值
select * from [Hero]        /*=>21*/
select count(age) from [Hero]        /*count()是不统计空值的*/
select avg(age) from [Hero]            /*avg()也是不统计空值的*/
select sum(age) from [Hero]            /*sum()对于null,认为是0*/
select min(age) from [Hero]            /*max()和min()也是忽略空值的*/
--②聚合函数默认把整个表中的数据当做"一组",然后才进行的统计
--如果使用聚合函数的时候,没有手动group by分组,那么聚合函数会把整个表中的数据当作"一组"来进行统计

--③所有的聚合函数(帮助文档中列出的)
/*--12个
avg
checksum agg
count
count big
grouping
max
min
sum
stdev
stdevp
var
varp
*/

--------------------------------------------用户登录数据库练习--------------------------------------------
--创建数据库
create database [LoginInfoDB]
--删除数据库
drop database [LoginInfoDB]
--创建表
use [LoginInfoDB]
go
create table [Users]
(
    autoid int identity(1,1) primary key,
    username varchar(50) not null,
    pwd varchar(50) not null,

)
select * from [Users]
--为表添加数据
insert into [Users] values(‘ldh‘,‘liudehua‘)
insert into [Users] values(‘lm‘,‘liming‘)
insert into [Users] values(‘zxy‘,‘zhangzueyou‘)
insert into [Users] values(‘gfc‘,‘guofucheng‘)
insert into [Users] values(‘swk‘,‘sunwukong‘)
insert into [Users] values(‘zbj‘,‘zhubajie‘)
insert into [Users] values(‘shs‘,‘shaheshang‘)
insert into [Users] values(‘tsz‘,‘tangsanzang‘)
insert into [Users] values(‘bgj‘,‘baigujing‘)

--查询所有数据
select * from [Users]
--带条件查询
select username from [Users] where sex=‘男‘
select count(*) as ‘工资大于5000人数‘ from hero where sal>=5000
--更新数据
update [Users] set sal=sal*1.1 where sal<3000
--删除指定数据
delete from [Users] where autoid=7
--清空表中数据
truncate table [Users]
--删除整张表(包括表结构和所有数据)
drop table [Hero]

--存储过程 & 带参数的sql语句
exec sp_executesql
N‘select count(*) from [Users] where [email protected] and [email protected]‘,
N‘@username varchar(50),@pwd varchar(50)‘,
@username=‘ldh‘,
@pwd=‘123456‘

--The End.

原文地址:https://www.cnblogs.com/jswl/p/8110578.html

时间: 2024-07-30 11:18:25

T-SQL - 记录01_基础sql语句操作的相关文章

15个初学者必看的基础SQL查询语句

本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要正确建立主键和外键的关系. 现在我们来创建几个餐厅订单管理的数据表,一共用到3张数据表,Item Master表.Order Master表和Order Detail表. 创建表: 创建Item Maste

SQL语句操作大全

SQL语句操作大全   本文分为以下六个部分: 基础部分 提升部分 技巧部分 数据开发–经典部分 SQL Server基本函数部分 常识部分 一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server— 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mssql7backup\MyNw

MySQL数据库基础(六)——SQL插入、更新、删除操作

MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO table_name (column_list) VALUES (value_list); insert into `TSubject` (subjectID,subjectName,BookName,Publisher) values ('0004','英语','大学英语走遍美国','清华出版社')

JAVA中用 SQL语句操作小结

1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1,值2,-) 若在输入记录时,每个字段均有内容,可省略表名后的字段名. 该SQL语句用于将值1,值2--值n分别赋给字段1,字段2,--字段n, 并为表增加一条记录.在使用该命令时要注意下面两个规则: 插入的值必须和列一一对应. 插入值的数据类型必须和对应列的数据类型相一致. 比如使用下面这个命令就可

SQL Server常语法语句操作

SQL Server语句操作 --1.获取表的主键字段SELECT name FROM SysColumns WHERE id=Object_Id('表名') and colid=(select top 1 colid from sysindexkeys where id=Object_Id('表名')) select A.COLUMN_NAME  from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE A join(select * from sysob

mysql系列详解二:sql语句操作-技术流ken

1.简介 本篇博客将详细讲解mysql的一些常用sql语句操作,例如创建数据库,删除数据库,创建表,修改表,删除表,以及简单查询案例. 2.关于mysql数据中的SQL的大小写问题 1.不区分大小写 1. sql中的关键字函数名 2. 存储过程.促存储函数.调度器 2.区分大小写 1. 库名.表名(也可以不区分--修改配置文件或者环境变量) 2. 触发器 3. 视图 3.第一类语句:与数据库相关的语句 语句1:创建数据库 CREATE DATABASE [IF NOT EXISTS] db_na

Shell脚本中执行sql语句操作

这篇文章主要介绍了Shell脚本中执行sql语句操作mysql的5种方法,本文讲解了将SQL语句直接嵌入到shell脚本文件中.命令行调用单独的SQL文件.使用管道符调用SQL文件等方法,需要的朋友可以参考下 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到sh

SQL语句操作优先级顺序

SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理. 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入.这些虚拟表对调用者(客户端应用程序或者外部查询)不可用.只是最后一步生成的表才会返回 给调用者.如果没有在查询中指定某一子句,将跳过相应的步骤.下面是对应用于SQL server 2000和SQL Server 2005的各个逻辑

在myeclipse中配置DB Driver(数据库用MySql),并在myeclipse执行sql语句操作

在myeclipse中配置DB Driver(数据库用MySql),并在myeclipse执行sql语句操作 MyEclipse6.5    ,  mysq驱动jar包为mysql-connector-java-5.1.8-bin.jar 在MyEclipse中添加hibernate支持时需要用到DB Driver所以需要配置 首先选择window-->Open Perspective-->Other 出现下图:选择MyEclipse Database Explore. 点击OK后出现如下画面