sql数据库示例,适合初学者
SQL语句大全实例

表操作例1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTSSNO NUMERIC 6, 0 NOT NULLSNAME CHAR 8 NOT NULLAGE NUMERIC3,0SEX CHAR2BPLACE CHAR20PRIMARY KEYSNO例2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLSSNO NUMERIC6,0 NOT NULLCNO CHAR4 NOT NULLGRADE INTPRIMARY KEYSNO,CNOFOREIGN KEYSNO REFERENCES STUDENTSSNOFOREIGN KEYCNO REFERENCES COURSESCNOCHECK GRADE IS NULL OR GRADE BETWEEN 0 AND 100例3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表;CREATE TABLE GIRLAS SELECT SNO, SNAME, AGEFROM STUDENTSWHERE SEX=' 女';例4 删除教师表TEACHER ;DROP TABLE TEACHER例5 在教师表中增加住址列;ALTER TABLE TEACHERSADD ADDR CHAR50例6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除;ALTER TABLE STUDENTSDROP BPLACE CASCADE例7 补充定义ENROLLS 表的主关键字;ALTER TABLE ENROLLSADD PRIMARY KEY SNO,CNO ;视图操作虚表例9 建立一个只包括教师号、姓名和年龄的视图FACULTY ; 在视图定义中不能包含ORDER BY 子句CREATE VIEW FACULTYAS SELECT TNO, TNAME, AGEFROM TEACHERS例10 从学生表、课程表和选课表中产生一个视图GRADE_TABLE , 它包括学生姓名、课程名和成绩;CREATE VIEW GRADE_TABLEAS SELECT SNAME,CNAME,GRADEFROM STUDENTS,COURSES,ENROLLSWHERE =AND=例11 删除视图GRADE_TABLEDROP VIEW GRADE_TABLE RESTRICT索引操作例12 在学生表中按学号建立索引;CREATE UNIQUE INDEX STON STUDENTS SNO,ASC例13 删除按学号所建立的索引;DROP INDEX ST数据库模式操作例14 创建一个简易教学数据库的数据库模式TEACHING_DB ,属主为ZHANG ;CREATE SCHEMA TEACHING_DB AUTHRIZATION ZHANG例15 删除简易教学数据库模式TEACHING_DB ; 1 选用CASCADE ,即当删除数据库模式时,则本数据库模式和其下属的基本表、视图、索引等全部被删除; 2 选用RESTRICT ,即本数据库模式下属的基本表、视图、索引等事先已清除,才能删除本数据库模式,否则拒绝删除;DROP SCHEMA TEACHING_DB CASCADE单表操作例16 找出 3 个学分的课程号和课程名;SELECT CNO, CNAMEFROM COURSESWHERE CREDIT =3例17 查询年龄大于22 岁的学生情况;SELECTFROM STUDENTSWHERE AGE >22例18 找出籍贯为河北的男生的姓名和年龄;SELECT SNAME, AGEFROM STUDENTSWHERE BPLACE =' 河北' AND SEX =' 男'例19 找出年龄在20 ~23 岁之间的学生的学号、姓名和年龄,并按年龄升序排序; ASC 升序或DESC 降序声明排序的方式,缺省为升序;SELECT SNO, SNAME, AGEFROM STUDENTSWHERE AGE BETWEEN 20 AND 23ORDER BY AGE例20 找出年龄小于23 岁、籍贯是湖南或湖北的学生的姓名和性别;条件比较运算符=、<和逻辑运算符AND 与,此外还可以使用的运算符有:>大于、>=大于等于、<=小于等于、<>不等于、NOT 非、OR 或等;谓词LIKE 只能与字符串联用,常常是“ <列名>LIKE pattern” 的格式;特殊字符“_” 和“%” 作为通配符;谓词IN 表示指定的属性应与后面的集合括号中的值集或某个查询子句的结果中的某个值相匹配,实际上是一系列的OR 或的缩写;谓词NOT IN 表示指定的属性不与后面的集合中的某个值相匹配;谓词BETWEEN 是“ 包含于… 之中” 的意思;SELECT SNAME, SEXFROM STUDENTSWHERE AGE <23 AND BPLACE LIKE' 湖%'或SELECT SNAME, SEXFROM STUDENTSWHERE AGE <23 AND BPLACE IN ' 湖南' , ' 湖北'例22 找出学生表中籍贯是空值的学生的姓名和性别;在SQL 中不能使用条件:<列名>=NULL ;在SQL 中只有一个特殊的查询条件允许查询NULL 值:SELECT SNAME, SEXFROM STUDENTSWHERE BPLACE IS NULL多表操作例23 找出成绩为95 分的学生的姓名;子查询SELECT SNAMEFROM STUDENTSWHERE SNO =SELECT SNOFROM ENROLLSWHERE GRADE =95例24 找出成绩在90 分以上的学生的姓名;SELECT SNAMEFROM STUDENTSWHERE SNO INSELECT SNOFROM ENROLLSWHERE GRADE >90或SELECT SNAMEFROM STUDENTSWHERE SNO =ANYSELECT SNOFROM ENROLLSWHERE GRADE >90例25 查询全部学生的学生名和所学课程号及成绩;连接查询SELECT SNAME, CNO, GRADEFROM STUDENTS, ENROLLSWHERE =例26 找出籍贯为山西或河北,成绩为90 分以上的学生的姓名、籍贯和成绩;当构造多表连接查询命令时,必须遵循两条规则;第一,连接条件数正好比表数少 1 若有三个表,就有两个连接条件;第二,若一个表中的主关键字是由多个列组成,则对此主关键字中的每一个列都要有一个连接条件也有少数例外情况SELECT SNAME, BPLACE, GRADEFROM STUDENTS, ENROLLSWHERE BPLACE IN ‘ 山西’ , ‘ 河北’AND GRADE >=90 AND =例28 查出课程成绩在80 分以上的女学生的姓名、课程名和成绩; FROM 子句中的子查询SELECT SNAME,CNAME, GRADEFROM SELECT SNAME, CNAME , GRADEFROM STUDENTS, ENROLLS,COURSESWHERE SEX =' 女'AS TEMP SNAME, CNAME,GRADEWHERE GRADE >80表达式与函数的使用例29 查询各课程的学时数;算术表达式由算术运算符+、-、、/与列名或数值常量所组成;SELECT CNAME,COURSE_TIME =CREDIT16FROM COURSES例30 找出教师的最小年龄;内部函数:SQL 标准中只使用COUNT 、SUM 、AVG 、MAX 、MIN 函数,称之为聚集函数Set Function ; COUNT 函数的结果是该列统计值的总数目, SUM 函数求该列统计值之和, AVG 函数求该列统计值之平均值, MAX 函数求该列最大值, MIN 函数求该列最小值;SELECT MINAGEFROM TEACHERS例31 统计年龄小于等于22 岁的学生人数;统计SELECT COUNTFROM STUDENTSWHERE AGE < =22例32 找出学生的平均成绩和所学课程门数;SELECT SNO, AVGGRADE, COURSES =COUNTFROM ENROLLSGROUP BY SNO例34 找出年龄超过平均年龄的学生姓名;SELECT SNAMEFROM STUDENTSWHERE AGE >SELECT AVGAGEFROM STUDENTS例35 找出各课程的平均成绩,按课程号分组,且只选择学生超过 3 人的课程的成绩; GROUP BY 与HAVINGGROUP BY 子句把一个表按某一指定列或一些列上的值相等的原则分组,然后再对每组数据进行规定的操作;GROUP BY 子句总是跟在WHERE 子句后面,当WHERE 子句缺省时,它跟在FROM 子句后面;HAVING 子句常用于在计算出聚集之后对行的查询进行控制;SELECT CNO, AVGGRADE, STUDENTS =COUNTFROM ENROLLSGROUP BY CNOHAVING COUNT >= 3相关子查询例37 查询没有选任何课程的学生的学号和姓名;当一个子查询涉及到一个来自外部查询的列时,称为相关子查询Correlated Subquery ;相关子查询要用到存在测试谓词EXISTS 和NOT EXISTS ,以及ALL 、ANY SOME 等;SELECT SNO, SNAMEFROM STUDENTSWHERE NOT EXISTSSELECTFROM ENROLLSWHERE =例38 查询哪些课程只有男生选读;SELECT DISTINCT CNAMEFROM COURSES CWHERE ' 男' =ALLSELECT SEXFROM ENROLLS , STUDENTSWHERE = AND=例39 要求给出一张学生、籍贯列表,该表中的学生的籍贯省份,也是其他一些学生的籍贯省份;SELECT SNAME, BPLACEFROM STUDENTS AWHERE EXISTSSELECTFROM STUDENTS BWHERE = AND< >例40 找出选修了全部课程的学生的姓名;本查询可以改为:查询这样一些学生,没有一门课程是他不选修的;SELECT SNAMEFROM STUDENTSWHERE NOT EXISTSSELECTFROM COURSESWHERE NOT EXISTSSELECTFROM ENROLLSWHERE =AND =关系代数运算例41 设有某商场工作人员的两张表:营业员表SP_SUBORD 和营销经理表SP_MGR ,其关系数据模式如下:SP_SUBORD SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICESP_MGR SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICE其中,属性SALPERS_ID 为工作人员的编号, SALPERS_NAME 为工作人员的姓名, MANAGER_ID 为所在部门经理的编号, OFFICE 为工作地点;若查询全部商场工作人员,可以用下面的SQL 语句:SELECT FROM SP_SUBORDUNIONSELECT FROM SP_MGR或等价地用下面的SQL 语句:SELECTFROM TABLE SP_SUBORD UNION TABLE SP_MGR2 INTERSECTSELECT FROM SP_SUBORDINTERSECTSELECT FROM SP_MGR或等价地用下面的SQL 语句:SELECTFROM TABLE SP_SUBORD INTERSECT TABLE SP_MGR或用带ALL 的SQL 语句:SELECT FROM SP_SUBORDINTERSECT ALLSELECT FROM SP_MGR或SELECTFROM TABLE SP_SUBORD INTERSECT ALL TABLE SP_MGR3 EXCEPTSELECT FROM SP_MGREXCEPTSELECT FROM SP_SUBORD或等价地用下面的SQL 语句:SELECTFROM TABLE SP_MGR EXCEPT TABLE SP_ SUBORD或用带ALL 的SQL 语句:EXCEPT ALLSELECT FROM SP_SUBORD例42 查询籍贯为四川、课程成绩在80 分以上的学生信息及其成绩;自然连接SELECT FROM STUDENTSWHERE BPLACE=‘ 四川’NATURAL JOINSELECT FROM ENROLLSWHERE GRADE >=80例列出全部教师的姓名及其任课的课程号、班级;外连接与外部并外连接允许在结果表中保留非匹配元组,空缺部分填以NULL ;外连接的作用是在做连接操作时避免丢失信息;外连接有3 类:1 左外连接Left Outer Join ;连接运算谓词为LEFT OUTER JOIN ,其结果表中保留左关系的所有元组;2 右外连接Right Outer Join ;连接运算谓词为RIGHT OUTER JOIN ,其结果表中保留右关系的所有元组;3 全外连接Full Outer Join ;连接运算谓词为FULL OUTER JOIN ,其结果表中保留左右两关系的所有元组;SELECT TNAME, CNO, CLASSFROM TEACHERS LEFT OUTER JOIN TEACHING USING TNOSQL 的数据操纵例44 把教师李映雪的记录加入到教师表TEACHERS 中;插入INSERT INTO TEACHERSVALUES1476 , ' 李映雪' , 44 , ' 副教授'例45 成绩优秀的学生将留下当教师;INSERT INTO TEACHERS TNO , TNAMESELECT DISTINCT SNO , SNAMEFROM STUDENTS , ENROLLSWHERE =AND GRADE >=90例47 把所有学生的年龄增加一岁;修改UPDATE STUDENTSSET AGE =AGE+1例48 学生张春明在数据库课考试中作弊,该课成绩应作零分计;UPDATE ENROLLSSET GRADE =0WHERE CNO ='C1' AND' 张春明' =SELECT SNAMEFROM STUDENTSWHERE =例49 从教师表中删除年龄已到60 岁的退休教师的数据;删除WHERE AGE >=60SQL 的数据控制例50 授予LILI 有对表STUDENTS 的查询权;表/视图特权的授予一个SQL 特权允许一个被授权者在给定的数据库对象上进行特定的操作;授权操作的数据库对象包括:表/ 视图、列、域等;授权的操作包括:INSERT 、UPDATE 、DELETE 、SELECT 、REFERENCES 、TRIGGER 、UNDER 、USAGE 、EXECUTE 等;其中INSERT 、UPDATE 、DELETE 、SELECT 、REFERENCES 、TRIGGER 有对表做相应操作的权限,故称为表特权;GRANT SELECT ON STUDENTSTO LILIWITH GRANT OPTION例51 取消LILI 的存取STUDENTS 表的特权;REVOKE ALLON STUDENTSFROM LILI CASCADE不断补充中:1. 模糊查找:它判断列值是否与指定的字符串格式相匹配;可用于char、varchar、text、ntext、datetime 和smalldatetime等类型查询;可使用以下通配字符:百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%;下划线_:匹配单个任意字符,它常用来限制表达式的字符长度;方括号:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个;^:其取值也相同,但它要求所匹配对象为指定字符以外的任一个字符;例如:限制以Publishing结尾,使用LIKE '%Publishing'限制以A开头:LIKE 'A%'限制以A开头外:LIKE '^A%'2.更改表格ALTER TABLE table_nameADD COLUMN column_name DATATYPE说明:增加一个栏位没有删除某个栏位的语法;ALTER TABLE table_nameADD PRIMARY KEY column_name说明:更改表得的定义把某个栏位设为主键;ALTER TABLE table_nameDROP PRIMARY KEY column_name说明:把主键的定义删除;by在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集;group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果;在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数select maxsal,job emp group by job;注意maxsal,job的job并非一定要出现,但有意义查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数;select deptno,sumsal from emp where sal>1200 group by deptno having sumsal>8500 order by deptno;当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组;在一个sql语句中可以有where子句和having子句;having 与where 子句类似,均用于设置限定条件where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行;having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组;查询每个部门的每种职位的雇员数select deptno,job,count from emp group by deptno,job;4.外连接与内连接有时候,即使在连接的表中没有相应的行,用户可能想从一张表中看数据,Oracle提供了外连接实现该功能;内连接是指连接查询只显示完全满足连接条件的记录,即等值连接,外连接的查询结果是内连接查询结果的扩展;外连接不仅返回满足连接条件的所有记录而且也返回了一个表中那些在另一个表中没有匹配行的记录;外连接的操作符是“+”;“+”号放在连接条件中信息不完全的那一边即没有相应行的那一边;运算符“+”影响NULL行的建立;建一行或多行NULL来匹配连接的表中信息完全的行;外连接运算符“+”只能出现在where子句中表达式的一边;假如在多张表之间有多个连接条件,外连接运算符不能使用or,in逻辑运算符与其它条件组合;假如emp表中deptno=10的ename为空值,dept表中deptno=20的loc为空值:1.selectename,,locfromemp,deptwhere+=;如果在中有的数值在中没有值,则在做外连接时,结果中ename会产生一个空值;=102.selectename,,locfromemp,deptwhere=+;如果在中有的数值在中没有值,则在做外连接时,结果中loc会产生一个空值;;=205.自连接自连接是指同一张表的不同行间的连接;该连接不受其他表的影响;用自连接可以比较同一张表中不同行的某一列的值;因为自连接查询仅涉及到某一张表与其自身的连接;所以在from子句中该表名出现两次,分别用两个不同的别名表示,两个别名当作两张不同的表进行处理,与其它的表连接一样,别名之间也使用一个或多个相关的列连接;为了区分同一张表的不同行的列,在名前永别名加以限制;select,managerfromemp worker,emp managerwhere=;6.集合运算基合运算符可以用于从多张表中选择数据;①UNION运算用于求两个结果集合的并集两个结果集合的所有记录,并自动去掉重复行;select ename,sal from account where sal>2000unionselect ename,sal from research where sal>2000unionselect ename,sal from sales where sal>2000;注:ename,sal 是必须一致的;②UNION ALL运算用于求两个结果集合的并集两个结果集中的所有记录,并且不去掉重复行;select ename,sal from account where sal>2000unionselect ename,sal from research where sal>2000unionselect ename,sal from sales where sal>2000;③INTERSECT运算intersect运算返回查询结果中相同的部分;各部门中有哪些相同的职位select Job from accountintersectselect Job from researchintersectselect Job from sales;④MINUS运算minus返回两个结果集的差集;在第一个结果集中存在的,而在第二个结果集中不存在的行; 有那些职位是财务部中有,而在销售部门中没有select Job from accountminusselect Job from sales;。
sql server数据示例

sql server数据示例SQL Server 数据示例SQL Server 是一种关系数据库管理系统(RDBMS),用于存储、管理和处理大量结构化数据。
它是由Microsoft开发的,并且在商业环境中被广泛使用。
在本文中,我们将探讨SQL Server数据示例,以便更好地理解如何使用SQL Server来处理数据。
一、什么是SQL Server数据示例?SQL Server数据示例,是一个具有现实世界数据的数据库,用于演示和学习目的。
这些数据示例通常包含一个或多个表,每个表都包含具有不同数据类型和属性的列。
它们模拟了真实环境中的数据,并为用户提供了一个实际数据处理的平台。
例如,一个汽车销售公司可以创建一个SQL Server数据示例,其中包含自动化的汽车信息,包括品牌、型号、颜色、价格等。
这样的数据示例可以用于演示如何使用SQL Server来查询和更新数据。
二、如何获得SQL Server数据示例?Microsoft提供了一些免费的SQL Server数据示例,可供用户下载和使用。
这些示例数据库模拟了实际业务场景,并且包含已填充的数据。
用户可以下载这些示例数据库,并在SQL Server中导入它们以使用。
例如,AdventureWorks是一个广泛使用的SQL Server示例数据库,用于模拟零售业务。
它包含了大量的表,用于表示产品、客户、销售订单等。
通过使用AdventureWorks,用户可以学习和实践SQL Server的各种功能和特性。
此外,用户还可以创建自己的SQL Server数据示例,以匹配他们的特定需求。
他们可以使用SQL Server Management Studio(SSMS)工具来创建数据库并添加数据。
该工具提供了一个图形化界面,使用户可以轻松地创建表和插入数据。
三、如何在SQL Server中使用数据示例?一旦导入了SQL Server数据示例,用户可以使用SQL查询语言(SQL)对其进行操作。
基础sql语句

基础sql语句1. SELECT: 用于查询表中的数据,可以使用通配符(*)表示所有列或者指定列名。
例子:SELECT * FROM table_name;2. FROM: 用于指定查询的数据来源,即需要查询哪张表。
例子:SELECT * FROM table_name;3. WHERE: 用于筛选满足条件的数据行,可以使用比较运算符(>,<,=,!=,>=,<=)等。
例子:SELECT * FROM table_name WHEREcolumn_name >= 10;4. ORDER BY: 用于将查询结果按照某个列进行排序,可以指定升序或降序(ASC或DESC)。
例子:SELECT * FROM table_name ORDER BYcolumn_name ASC;5. GROUP BY: 用于将查询结果按照某个列进行分组,通常使用聚合函数(SUM,COUNT,AVG,MAX,MIN)进行数据计算。
例子:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;6. LIMIT: 用于限制查询结果的数量,只返回前几条数据。
例子:SELECT * FROM table_name LIMIT 10;7. JOIN: 用于将多张表按照共同的字段进行连接,可以有多种连接方式(INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN)。
例子:SELECT * FROM table1 LEFT JOIN table2 ONtable1.column_name = table2.column_name.。
SQL数据库查询语句范例

SQ基础查询(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:Select nickname,email FROM testtable3、更改列标题在选择列表中,可重新指定列标题。
定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:Select 昵称=nickname,电子邮件=email FROM testtable4、删除重复行Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。
使用DISTINCT选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。
5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable(二) FROM子句FROM子句指定Select语句查询及与查询相关的表或视图。
在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。
例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:Select username,citytable.cityid FROM usertable,citytableWhere usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名别名例如上面语句可用表的别名格式表示为:Select username,b.cityid FROM usertable a,citytable b Where a.cityid=b.cityidSelect不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
数据库SQL语句例题

例如1] 定义一学生-课程模式CREATE SCHEMA “S-T” AUTHORIZATION WANC[例5] 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。
其中学号为主码,并且姓名取值也唯一。
CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2) ,Sage SMALLINT,Sdept CHAR(20));[例6] 建立一个“课程”表Course。
CREATE TABLE Course(Cno CHAR(4) PRIMARY KEY ,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno));[例7] 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
CREATE TABLE SC(Sno CHAR(9) ,Cno CHAR(4) ,Grade SMALLINT,PRIMARY key (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno));[例8] 向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD Scome DA TE;[例9] 将年龄的数据类型改为整数。
ALTER TABLE Student MODIFY Sage SMALLINT;[例10] 删除学生姓名必须取唯一值的约束。
ALTER TABLE Student DROPUNIQUE(Sname);例11] 删除Student表DROP TABLE Student ;[例14] 为学生-课程数据库中的Student,Course,SC三个表建立索引。
sql查询举例(含答案)

查询练习一、简单查询(无条件查询):1、查询“学生档案”表中所有的记录SELECT * FORM 学生档案2、查询“学生档案”表中全体学生的姓名、学号、家庭地址SELECT 姓名, 学号, 家庭地址 FROM 学生档案二、有条件查询1、查询“成绩管理”表中语文成绩在80分以下的学生的学号。
SELECT 学号 FROM 成绩管理 WHERE 语文<802、查询“成绩管理”表中语文成绩在80分到90分之间的学生的学号,语文,数学,英语成绩。
SELECT 学号,语文,数学,英语FROM成绩管理WHERE 语文 >= 80 AND 语文<=90==(语文 BETWEEN 80 AND 90)3、查询“成绩管理”表中数学成绩不在75分到85分之间的学生的学号,语文,数学,英语成绩。
SELECT 学号,语文,数学,英语FROM 成绩管理WHERE 数学 NOT BETWEEN 75 AND 854、查询“学生档案”表中李成刚,刘艺梅,郑莉三名学生的信息。
SELECT *FROM 学生档案WHERE 姓名 IN (“李成刚”,“刘艺梅”,“郑莉”)==(姓名 =“李成刚” OR 姓名=“刘艺梅” OR 姓名=“郑莉”)5、查询“学生档案”表中所有姓张的学生的姓名、学号和性别SELECT 姓名,学号,性别 FROM学生档案WHERE 姓名 LIKE “张*”6、查询“学生档案”表中所有姓张且全名为三个汉字的学生的姓名SELECT 姓名FROM 学生档案WHERE姓名 LIKE “张??”7、查询“学生档案”表中第二个字符为“建”字的学生的学号和姓名SELECT 学号,姓名FROM 学生档案WHERE姓名 LIKE “?建*”8、查询“学生档案”表中家庭住址为“人民路”和“育才路”的学生学号,姓名,性别和家庭住址。
SELECT 学号,姓名,性别,家庭住址FROM 学生档案WHERE家庭住址 LIKE “人民路*” OR家庭住址 LIKE “育才路*”9、查询“学生档案”表中所有团员的学生班级和姓名。
易语言,SQL数据库教程[整理版]
![易语言,SQL数据库教程[整理版]](https://img.taocdn.com/s3/m/51de20cc561252d380eb6edb.png)
易语言,SQL数据库教程[整理版] 易语言操作SQL Server数据库全过程最近看到很多初学者在问在易语言中如何操作SQL Server以外部数据库,也有人提出想要个全面的操作过程,为了让大家能够尽快上手,我给大家简单介绍一下操作SQL的过程,希望能起到抛砖引玉的作用。
由于我本身工作业比较忙,就以我目前做的一个软件的部份内容列给大家简单讲讲吧,高手就不要笑话了,只是针对初学者第一步,首先需要建立一个数据库: 以建立一个员工表为例,各字段如下: 3 员工ID int 4 0 0 登陆帐号 nvarchar 30 1 0 密码 nvarchar 15 1 所属部门 nvarchar 30 1 00 姓名 nvarchar 10 1 0 性别 nvarchar 2 1 0 年龄 nvarchar 10 1 0 当前职务 nvarchar 10 1 0 级别 nvarchar 10 1 0 出生日期 nvarchar 40 1 0 专业nvarchar 10 1 0 学历 nvarchar 8 1 0 婚姻状况 nvarchar 4 1 0 身份证号nvarchar 17 1 0 籍贯 nvarchar 50 1 0 毕业院校 nvarchar 50 10 兴趣爱好 nvarchar 600 1 0 电话 nvarchar 11 1 0 家庭成员 nvarchar 20 1 0 工作经历 nvarchar 600 1 0 销售行业经验nvarchar 600 1 0 离职原因nvarchar 600 1 0 升迁记录 nvarchar 600 1 0 调岗记录 nvarchar 600 1 0 特殊贡献 nvarchar 600 1 0 奖励记录 nvarchar 600 1 0 处罚记录 nvarchar 600 1 0 同事关系 nvarchar 4 1 0 企业忠诚度 nvarchar 4 1 0 入司日期 nvarchar 30 1 0 在职状态 nvarchar 4 1 0 上级评语 nvarchar 600 1 0 最后登陆时间nvarchar 20 1 0 登陆次数 nvarchar 50 1 0 照片 image 16 1一般我习惯用nvarchar,因为这是可变长的的非Unicode数据,最大长度为8000个字符,您可以根据您的情况来设定,我这里只是举例说明。
50个常用sql语句实例(学生表_课程表_成绩表_教师表)

Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2))前面加一列序号:ifexists(select table_name from information_schema.tableswhere table_name='Temp_Table')drop table Temp_Tablegoselect 排名=identity(int,1,1),* INTO Temp_Table from Studentgoselect * from Temp_Tablegodrop database [ ] --删除空的没有名字的数据库问题:1、查询“”课程比“”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩大于分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“”并且也学过编号“”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC whereStudent.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher whereTeacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;9、查询所有课程成绩小于分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询至少有一门课与学号为“”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC whereS#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“”课程的同学学号、、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(),马克思(),OO&UML (),数据库()SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第名到第名的学生成绩单:企业管理(),马克思(),UML (),数据库()[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) +ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩> T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname havingcount(C#)=1;28、查询男生、女生人数Select count(Ssex) as 男生人数from Student group by Ssex having Ssex='男';Select count(Ssex) as 女生人数from Student group by Ssex having Ssex='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname havingavg(score)>85;34、查询课程名称为“数据库”,且分数低于的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score <60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e <60 order by C# ;38、查询课程编号为且课程成绩在分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC whereC#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过人的课程才统计)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语法:UPDATE 表名 SET 列名 1=列值 1,列名 2=列值 2 。。。 WHERE 列名=
值
练习: 将所有员工薪水修改为 5000 元。
UPDATE emp SET salary=5000 将姓名为’zs’的员工薪水修改为 3000 元。
UPDATE emp SET salary=3000 WHERE name=’ zhangsan’; 将姓名为’aaa’的员工薪水修改为 4000 元,job 改为 ccc。
INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume) VALUES(1,'zhangsan','female','1990-5-10',10000,'2015-5-5-','good girl');
INSERT INTO emp(id,name,gender,birthday,salary,entry_date,resume)
4.2 DML 操作(重要)
查询表中的所有数据 SELECT * FROM 表名;
DML 是对表中的数据进行增、删、改的操作。不要与 DDL 混淆了。 INSERT 、UPDATE、 DELETE
小知识: 在 mysql 中,字符串类型和日期类型都要用单引号括起来。'tom' '2015-09-04' 空值:null
语法 : DELETE FROM 表名 【WHERE 列名=值】
练习 : 删除表中名称为’zs’的记录。 DELETE FROM emp WHERE name=‘zs’; 删除表中所有记录。 DELETE FROM emp; 使用 truncate 删除表中记录。 TRUNCATE TABLE emp;
各数据库厂商都支持 ISO 的 SQL 标准。普通话 各数据库厂商在标准的基础上做了自己的扩展。方言
四、Sql 的分类
DDL**(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; CREATE、 ALTER、DROP
DML***(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据); INSERT、 UPDATE、 DELETE
SHOW CREATE TABLE user; 修改表的字符集为 gbk
ALTER TABLE user CHARACTER SET gbk; 列名 name 修改为 username ALTER TABLE user CHANGE name username varchar(100);
删除表 DROP TABLE user ;
UPDATE emp SET salary=4000,gender='female' WHERE name='lisi'; 将 wu 的薪水在原有基础上增加 1000 元。
UPDATE emp SET salary=salary+1000 WHERE gender='male';
4.2.3 删除操作 DELETE:
一、数据库概述
数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来, 可以被各种用户或应用共享的数据集合。(文件系统)
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的 大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的 安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
闭该窗口) 3) 新打开 cmd 输入 mysql -u root -p 不需要密码
use mysql; update user set password=password('abc') WHERE User='root'; 4) 关闭两个 cmd 窗口 在任务管理器结束 mysqld 进程 5) 在服务管理页面 重启 mysql 服务 密码修改完成
当前数据库中的所有表
SHOW TABLES; 查看表的字段信息
DESC employee; 在上面员工表的基本上增加一个 image 列。 ALTER TABLE employee ADD image blob; 修改 job 列,使其长度为 60。 ALTER TABLE employee MODIFY job varchar(60); 删除 image 列,一次只能删一列。 ALTER TABLE employee DROP image; 表名改为 user。 RENAME TABLE employee TO user; 查看表格的创r:可变长度字符串类型;varchar(10) 'abc'
text:字符串类型;
blob:字节类型;
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss 会自动赋值
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
数据库中一行记录与对象之间的关系。
列:字段 行:一条记录(实体) public class User{
private int id; private String name; private int age; }
三、sql 概述
SQL:Structure Query Language。(结构化查询语言) SQL 被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准 组织(ISO)采纳为关系数据库语言的国际标准。
* 4.1.1 操作数据库
创建
create database mydb1; Create database mydb2 character set gbk; Create database mydb3 character set gbk COLLATE gbk_chinese_ci;
查询
查看当前数据库服务器中的所有数据库 show databases; 查看前面创建的 mydb2 数据库的定义信息 Show create database mydb2; 删除前面创建的 mydb3 数据库 Drop database mydb3;
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别; DQL*****(Data Query Language):数据查询语言,用来查询记录(数据)。
SELECT * 注意:sql 语句以;结尾
4.1 DDL:操作数据库、表、列等
使用的关键字:CREATE、 ALTER、 DROP
创建名: 学生表:stu 字段名称 sid sname age gender
字段类型 char(6) varchar(50) int varchar(50)
说明 学生学号 学生姓名 学生年龄 学生性别
CREATE TABLE stu (
sid CHAR(6),
sname
VARCHAR(50),
age
查询关键字:SELECT 语法: SELECT 列名 FROM 表名 【WHERE --> GROUP BY -->HAVING--> ORDER BY】
语法: SELECT selection_list /*要查询的列名称*/
FROM table_list /*要查询的表名称*/ WHERE condition /*行条件*/ GROUP BY grouping_columns /*对结果分组*/ HAVING condition /*分组后的行条件*/ ORDER BY sorting_columns /*对结果分组*/ LIMIT offset_start, row_count /*结果限定*/
数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。
数据库:存储、维护和管理数据的集合。
二、数据库的安装与配置
* 安装 * 参照图解 * 一路下一步
* 配置 * 参照图解 * 到选择字符集时停
登录 Mysql: mysql -u root -p abc
* 卸载 1.停止 mysql 服务 net stop mysql 2.卸载 mysql 3. 找 到 mysql 安 装 目 录下 的 my.ini
修改 删除
查看服务器中的数据库,并把 mydb2 的字符集修改为 utf8; alter database mydb2 character set utf8;
drop database mydb3;
* 其他:
查看当前使用的数据库 select database(); 切换数据库 use mydb2;
Server 5.5/Data/"
启动 mysql 服务 net start mysql datadir="C:/ProgramData/MySQL/MySQL
* 修改密码 运行 cmd * 安装成功了打开 cmd --> mysql -uroot -p 你的密码 * 修改 mysql root 用户密码 1) 停止 mysql 服务 运行输入 services.msc 停止 mysql 服务 或者 cmd --> net stop mysql 2) 在 cmd 下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关
批量插入: INSERT INTO emp VALUES (4,'zs','m','2015-09-01',10000,'2015-09-01',NULL), (5,'li','m','2015-09-01',10000,'2015-09-01',NULL), (6,'ww','m','2015-09-01',10000,'2015-09-01',NULL);