SQL 语句2
- 格式:doc
- 大小:115.50 KB
- 文档页数:25
常用数据库连接语句一:mysql的数据库连接语句connection condrivermanager.getconnection.(jdbc:mysql://localhost:3306/bookinfo,root,123);stat ement st = con.createstatement();string sql = select * from book;resultset rs = st.executequery(sql);while(rs.next()){}二:sqlserver的数据库连接语句connection con o,sa,123);preparedstatement ps = con.preparestatement(select * from book); resultset rs = ps.executequery();while(rs.next()){out.println(rs.getstring(2));}三:sqlserver2005的数据库连接语句connection con = drivermanager.getconnection.(jdbc:sqlserver://localhost:1433;databasename=bookin fo,sa,123);preparedstatement ps = con.preparestatement(select * from book);resultset rs = ps.executequery();= = drivermanager.getconnection.(jdbc:microsoft:sqlserver://localhost:1433;databasen ame=bookinfwhile(rs.next()){out.println(rs.getstring(2));}四:oracle的数据库连接语句jdbc:oracle:thin:@<server>[:<1521>]:<database_name>class.forname(oracle.jdbc.driver.oracledriver);connection con = drivermanager.getconnection.(jdbc:oracle:thin:@localhost:1521:bookinfo,zhangsan, 123);preparedstatement ps = con.preparestatement(select * from book);resultset rs = ps.executequery();while(rs.next()){out.println(rs.getstring(2));}篇二:sql语句大全+sql数据库连接sql语句大全创建数据库创建之前判断该数据库是否存在if exists (select * from sysdatabases where name=databasename)drop databasedatabasenamegocreate database database-name删除数据库drop database dbname备份sql server--- 创建备份数据的 deviceuse masterexec sp_addumpdevice disk, testback, c:\mssql7backup\mynwind_1.dat --- 开始备份backup database pubs to testback创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表:a:create table tab_new like tab_old (使用旧表创建新表)b:create table tab_new as select col1,col2… from tab_old definition only 删除新表drop table tabname增加一个列alter table tabname add column col type注:列增加后将不能删除。
SQL操作语句SQL语句与Mysql的语句⼤体上⽐较相似。
以下是sql server的⼀套练习题,是很好的数据库操作语句学习资料,学校的学习资料,在此整理了以下。
数据库exam:这是⼀个模拟电⼦商务,⽹上直销的数据,主要销售计算机配件。
该数据库包含了订单数据、经销商基本数据、产品基本数据以及供应商基本数据等。
该数据库共包含6个表,表名分别为:orders、distributors、suppliers、city、items和products。
各个表的内容与格式如下:表1 ⽹上直销订单表格,表名为:orders列名描述数据类型OrderNum订单号码IntOrderDate订购⽇期DatatimeDistriNum经销商号码IntPaidDate付款⽇期Datatime表2 经销商表格,表名为:distributors列名描述数据类型DistriNum经销商号码IntBossName经理名称CharCompany公司名称CharCityCode所属市区代码CharAddress公司地址CharPhone公司电话号码Char表3 供应商表格,表名为:suppliers列名描述数据类型SuppCode供应商代码CharSuppName供应商名称Char表4 市区表格,表名为:city列名描述数据类型CityCode市区代码CharCityName市区名称Char表5 订单项⽬表格,表名:items列名描述数据类型Item订单项⽬号码IntOrderNum订单号码IntProdNum产品号码IntSuppCode供应商代码CharQuantity单项定购数量IntTotalPrice单项总价Money表6 产品表格,表名:products列名描述数据类型ProdNum产品号码IntSuppCode供应商CharDescriptions产品名称CharUnitPrice产品单价Money⼀、数据表的简单操作⽤SQL语句选取表中所有的列:1、查询exam数据库中city表中所有的列的内容select*from city;2、查询exam数据库中orders表OrderDate列的内容select OrderDate from orders;选取惟⼀的数值:消除重复关键字:distinct (放在select后⾯)1、查询exam数据库中orders表中的订购⽇期OrderDate,并且相同的订购⽇期只显⽰⼀次(distinct)select distinct OrderDate from orders;2、对记录进⾏操作——选取特定的记录:查询exam数据库中供应商代码为HHT的供应商的实际名称select SuppName from city where SuppCode= "HHT";3、对记录进⾏操作——排除特定的记录:查询exam数据库中供应⼚代码不为HHT的所有供应商的实际名称select SuppName from city where SuppCode!= "HHT";3、对数据进⾏操作——选取介于某⼀范围的数据:查询exam数据库的products表中所有单价不超过20元的产品的名称及其对应的价格select Descriptions,UnitPrice from products where UnitPrice <=20;4、对数据进⾏操作——选取属于某⼀⼦集合的数据:in:在...⾥查询exam数据库中经销商号码为1006、1009、1013、1014、1017的经理名称以及其所在的公司名称select DistriNum,BossName,Company from distributors where DistriNum in (1006,1009,1013,1014,1017);5、对字符串进⾏操作——选取⼦字符串:查询exam数据库中所有经销商的电话区号select substring(Phone,1,3) from distritubors; //第⼀位和从这⼀位开始⼏位查询exam数据库中所有经销商的姓select substring(BossName,1,1) from distributors;6、对字符串进⾏操作——搜索⼦字符串:‘%’:表⽰N个任意字符查询exam数据库中所有经理姓“王”的公司的名称、电话以及公司地址select BossName,Company,Phone,Address from distributors where BossName like'王%';⼆、⼀般数据查询与处理1、同时执⾏多个SQL语句:实现在⼀次查询中同时查询exam数据库中orders表和distributors表所有列的内容select*from orders;goselect*from distributors;go2、⽤order by⼦句对数据进⾏排序:查询exam数据库products表格中所有的记录,查询结果根据单价由⼩到⼤的顺序(降序)排序select*from products order by UnitPrice desc;3、使⽤算术运算符:查询exam数据库products表中的所有记录,并且把每个产品单价显⽰成调⾼10%后的价格(只显⽰,数据库不变)select ProNum,SuppCode,description,UnitPrice * 1.1from products;3、查询exam数据库products表中的所有记录,并且把每个产品单价显⽰成8折后的价格select ProNum,SuppCode,description,UnitPrice *0.8from products;5、搜索单⼀长度的任意字符串:‘_’:表⽰⼀个任意字符查询exam数据库suppliers表中供应商代码的第1、3位分别为H和T的所有供应商的记录select*from suppliers where SuppCode like "H_T";6、使⽤常⽤的字符串函数:查询exam数据库distribuotrs表中经销商号码为1001的地址字符串的长度select len(Address) from distributors where DistriNum = "1001";7、查询字符串的长度select len(‘中华⼈民共和国’);8、将字符串‘I LOVE SQL SERVER‘的所有字母转换成⼩写字母select LOWER('I LOVE SQL SERVER');9、将字符串‘abcdefg’中的⼩写字母转换成⼤写字母select UPPER('abcdefg');10、将字符串‘ abcdefg’前的空格去掉select ltrim(' abcdefg);11、将字符串‘uvwxyz ’后的空格去掉select rtrim('uvwxyz ');12、将字符串‘我喜欢数据库’中的字符由左⾄右反转排列select REVERSE('我喜欢数据库');13、求出字符A的ASCII码select ASCII('A');14、判断数字5的正负号,如果正返回1,负返回-1select SIGN(5);15、使⽤常⽤的数学函数:计算出以下三个数的绝对值:-2.5,0.0,7.4select ABS(-2.5),ABS(0.0),ABS(7.4);16、返回分别⼤于或等于以下数字的最⼩整数:5.5,-7.2,0.0select floor(5.5),floor(-7.2),floor(0.0);17、返回π(PI)的值select PI();18、返回630.67的近似值,并将该数分别四舍五⼊到1、-2、3、0长度的⼩数select ROUND(630.67,1),ROUND(630.67,-2),ROUND(630.67,3),ROUND(630.67,0);19、返回以下3个数的平⽅值:4、-6,6.6select SQUARE(4),SQUARE(-6),SQUARE(6.6);20、返回以下3个数的算数平⽅根:4,0,50select SQRT(4),SQRT(0),SQRT(50);21、计算Cos(3.1415926)的值 sin(3.14159260) ctg(3.14) tg(3.1415926)select COS(3.1415926),SIN(3.14159260),COT(3.14),TAN(3.1415926);22、计算2的⾃然对数、指数值select LOG(2),EXP(2);23、计算1000的以10为底的对数select LOG10(1000);24、计算2的10次⽅select POWER(2,10);三、常⽤函数常⽤的集总函数的应⽤:1、查询exam数据库products表中共销售多少种产品select COUNT(*) from products;2、查询exam数据库items表中代码为HSC的供应商已订货的总⾦额select SuppCode,SUM(TotalPrice) from items where SuppCode ='HSC';3、查询exam数据库products表中所有供应商所供应的货品的平均单价select SuppCode,AVG(UnitPrice) from products group by SuppCode;4、查询exam数据库products表中每⼀个供应商产品的最⾼单价/最低单价select SuppCode,MAX(UnitPrice),MIN(UnitPrice) from products group by SuppCode;6、时间函数:(1)获取当前时间select getdate();(2)、在1991-07-10 2:30:00.000时间上增加21天select dateadd(d,21,’ 1991-07-102:30:00.000’);(3)、返回1991-07-10 2:30:00.000五天前的时间select DATEADD(D,-5,'1991-07-10 2:30:00.000');(4)、返回两个⽇期间隔的时间select DATEDIFF(D,'02/20/1999','02/28/1999');(5)、以字符串形式返回当天⼏年select DATENAME(Y,GETDATE());(6)、以整数形式返回当天⼏号select DATEPART(D,GETDATE());(7)、查询当前UTC时间(协调时间)select GETUTCDATE();四、⾼级数据查询与处理1、在⼀个select语句中使⽤多个表格:查询exam数据库中每⼀个经销商所有的订单数据,列出经销商号码、公司名称、电话号码以及订货⽇期select distributors.DistriNum,Company,Phone,OrderDate from distributors,orders where orders.DistriNum = distributors.DistriNum 2、在select语句中使⽤⼦查询:查询exam数据库中与经理名称为‘王为’的经销商同在⼀个市区的所有经销商的数据内容select*from distributors where CityCode=(select CityCode from distributors where BossName='王为');3、⽤union运算符实现从不同的表格抽取相同格式的数据:查询exam数据库中单价不⼤于25元或者是已订货项⽬中数量⼩于2的产品数据select ProdNum,SuppCode,Description,UnitPrice from products where UnitPrice <=25unionselect ProdNum,SuppCode,Quantity from items where Quantity <24、添加记录:在orders表中添加⼀笔记录,OrderNum为119,OrderDate为1905-06-8,DistriNum为1022,PaidDate为1905-06-9insert into orders(OrderNum,OrderDate,DistriNum,PaidDate) values(119,1905-06-8,1022,1905-06-9);5、删除记录:删除orders表中OrderNum为119的记录delete from orders where OrderNum =1196、更新记录:将orders表中订单号为118的订单的订购⽇期改为2003-07-11update orders set OrderDate = "2003-07-11" where OrderNum =1187、实现查询exam数据库中每⼀个经销商的订单号码(orders表中)与经销商公司所属市区的代码(ditributoirs表中)select orders.DistriNum,OrderNum,distributors.CityCode from orders,distributors where orders.DistriNum = distributors.DistriNum8、实现查询exam数据库中公司在宣武区的所有经销商的数据内容select*from distributors where CityCode= (select CityCode from city where CityName='宣武区')9、实现查询exam数据库中订单号码为100对应的经销商的情况select*from distributors where DistriNum= (select DistriNum from orders where OderNum =100)五、设计数据库⽤T-SQL语句实现默认值与列的结合:默认值创建:create default 关键字 as XX绑定默认值:sp_bindefault ‘默认值名’,’表名.[列名]’重命名默认值:exec sp_rename ‘旧名称’,’新名称’1.在exam数据库中新建名为moren的默认值,值为100,并把该默认值与orders表的OrderNum列结合(sp_bindefault)create default moren as100gosp_bindefault 'moren','orders.[OrderNum]'gosp_bindefault 将新默认值绑定到列(尽管最好使⽤ DEFAULT 约束)或者绑定到别名数据类型。
掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。
练掌握SQL是数据库用户的宝贵财富。
在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。
当你完成这些学习后,显然你已经开始算是精通SQL了。
在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。
DDL 语句对数据库对象如表、列和视进行定义。
它们并不对表中的行进行处理,这是因为DDL 语句并不处理数据库中实际的数据。
这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。
SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。
由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。
在图1中我们给出了一个名为EMPLOYEES的表。
其中的每一行对应一个特定的雇员记录。
请熟悉这张表,我们在后面的例子中将要用到它。
INSERT语句用户可以用INSERT语句将一行记录插入到指定的一个表中。
例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:INSERT INTO EMPLOYEES V ALUES('Smith','John','1980-06-10','Los Angles',16,45000);通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。
这些列按照我们创建表时定义的顺序排列。
在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。
我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。
如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。
第一讲上面是Access数据库中所涉及的两个表下面我们介绍Access数据库中用于查询数据的语句:1、SELECT 语句SELECT语句是数据库中使用频率最高的语句,就是我们通常说的查询语句。
其格式如下:SELECT+需要查询的对象+FROM+表名+WHERE+条件。
例1、查询上表中所有男性职工的“工号”“姓名”“部门”和“应发工资”。
SELECT 工号,姓名,部门,应发工资FROM rsda where 性别=”男”注意事项:1):写查询语句时英文部分不区分字母大小写。
2):除汉字外,所有字符标点和数字都必须使用半角英文状态下输入。
3):SELECT查询语句中如果没有条件限制,“WHERE+条件”部分可以省略。
4):需要查询的项目在表中必须存在。
5):如果要输出表中所有项目可以用“*”代替。
例如:查询上表中所有人员的姓名,出生年月及部门SELECT 姓名,出生年月,部门FROM rsda;显示表中的所有信息Select * from rsda;显示表中所有女性职工的信息Select * from rsda where 性别=”女”;要求:查询表中所有“未婚”男性职工的信息。
Select * from rsda where (性别=”男”)and(婚否=no);有两个知识点需要掌握:1):运算符:A、算术运算符:加(+)、减(-)、乘(*)、除(/)、和取模(%)。
算术运算符可以完成对两个表达式的数学运算。
B:赋值运算符:等号(=)C:比较运算符:等于(=)、大于(>)、大于或等于(>=)、小于(<)、小于或等于(<=)、不等于(<>或!=)、不小于(!<)、不大于(!>).D:逻辑运算符:与(and)、或(or)和非(not)。
对于AND运算,只有当运算符两端的表达式的值都为真时,结果才返回真,只要有一股表达式的值为假,结果就是假;对于or 运算,只要运算符两端的表达式的值有一个位真,结果就返回真,只有两个表达式的值都是假,结果才为假;NOT运算是对表达式的值取反。
SQL语句的基本语法一.SELECT语句的完整语法为:SELECT[ALL|DISTINCT|DISTINCTROW|TOP]{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}FROM tableexpression[,…][IN externaldatabase][WHERE…][GROUP BY…][HAVING…][ORDER BY…][WITH OWNERACCESS OPTION]说明:用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。
1 FROM子句FROM子句指定了SELECT语句中字段的来源。
FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。
如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。
例:下列SQL语句返回所有有定单的客户:SELECT OrderID,Customer.customerIDFROM Orders CustomersWHERE Orders.CustomerID=Customers.CustomeersID2 ALL、DISTINCT、DISTINCTROW、TOP谓词(1) ALL 返回满足SQL语句条件的所有记录。
如果没有指明这个谓词,默认为ALL。
例:SELECT ALL FirstName,LastNameFROM Employees(2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。
(3) DISTINCTROW 如果有重复的记录,只返回一个(4) TOP显示查询头尾若干记录。
也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比)例:返回5%定货额最大的定单SELECT TOP 5 PERCENT*FROM [ Order Details]ORDER BY UnitPrice*Quantity*(1-Discount) DESC3 用 AS 子句为字段取别名如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。
SQL(Structured Query Language)是一种用于管理关系数据库的编程语言。
以下是一些基本的SQL写入语句的例子:1. **插入数据**```sqlINSERT INTO 表名称 (列1, 列2, 列3, ...)VALUES (值1, 值2, 值3, ...);```例如,如果你有一个名为`students`的表,它有`id`, `name`, 和`age`这三个列,你可以这样插入数据:```sqlINSERT INTO students (id, name, age)VALUES (1, 'John Doe', 20);```2. **更新数据**```sqlUPDATE 表名称SET 列1 = 值1, 列2 = 值2, ...WHERE 某列 = 某值;```例如,如果你想更新`students`表中id为1的学生的年龄,你可以这样做:```sqlUPDATE studentsSET age = 21WHERE id = 1;```3. **删除数据**```sqlDELETE FROM 表名称 WHERE 某列 = 某值;```例如,如果你想删除`students`表中id为1的学生,你可以这样做:```sqlDELETE FROM students WHERE id = 1;```注意:在执行任何修改数据的SQL语句(特别是`UPDATE`和`DELETE`)时,一定要确保你已经正确地使用了`WHERE`子句,否则你可能会不小心修改或删除更多的数据。
请记住,执行这些操作前,你通常需要连接到你的数据库,这通常需要使用到如MySQL、PostgreSQL、SQLite等数据库的客户端或库。
sql 创建数据库语句创建数据库是SQL中非常重要的一部分,它是用来存储和管理数据的基础设施。
在SQL中,我们可以使用CREATE DATABASE语句来创建一个新的数据库。
下面是一些常用的创建数据库的SQL语句示例。
1. 创建一个名为"mydb"的数据库:```CREATE DATABASE mydb;```2. 创建一个名为"employees"的数据库,并指定字符集和排序规则:```CREATE DATABASE employeesCHARACTER SET utf8COLLATE utf8_general_ci;```3. 创建一个名为"sales"的数据库,并指定数据库文件的路径:```CREATE DATABASE salesDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciDATA DIRECTORY '/var/lib/mysql/data/sales'INDEX DIRECTORY '/var/lib/mysql/index/sales';```4. 创建一个名为"inventory"的数据库,并指定数据库文件的大小和增长方式:```CREATE DATABASE inventoryDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciDEFAULT TABLESPACE = innodb_file_per_tableMAXIMUM SIZE = 100MBAUTOEXTEND ON;```5. 创建一个名为"customers"的数据库,并指定数据库的备注和所有者:```CREATE DATABASE customersDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciCOMMENT 'This is the customer database'OWNER = myuser;```6. 创建一个名为"products"的数据库,并指定数据库的备份选项:```CREATE DATABASE productsDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciBACKUPDATA DIRECTORY '/var/lib/mysql/backup/products'INDEX DIRECTORY '/var/lib/mysql/backup/products';```7. 创建一个名为"orders"的数据库,并指定数据库的权限:```CREATE DATABASE ordersDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciGRANT ALL PRIVILEGES ON orders.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword';```8. 创建一个名为"suppliers"的数据库,并指定数据库的访问权限:```CREATE DATABASE suppliersDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciGRANT SELECT, INSERT, UPDATE, DELETE ON suppliers.* TO 'myuser'@'localhost'IDENTIFIED BY 'mypassword';```9. 创建一个名为"invoices"的数据库,并指定数据库的存储引擎:```CREATE DATABASE invoicesDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciENGINE = InnoDB;```10. 创建一个名为"reports"的数据库,并指定数据库的字符集和排序规则:```CREATE DATABASE reportsDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ci;```以上是一些常见的创建数据库的SQL语句示例,可以根据具体的需求进行调整和修改。
SQL流程控制语句1.IF语句:根据给定的条件决定是否执行段代码。
语法格式如下:```sqlIF(condition, statement1, statement2);```如果条件为真,执行`statement1`,否则执行`statement2`。
2.CASE语句:根据给定的条件在多个选项中选择一个执行。
有两种形式:简单CASE表达式和CASE表达式。
-简单CASE表达式的语法格式如下:```sqlCASE expressionWHEN value1 THEN statement1WHEN value2 THEN statement2...ELSE statementNEND;```根据`expression`的值,选择相应的值进行处理。
-CASE表达式的语法格式如下:CASEWHEN condition1 THEN statement1WHEN condition2 THEN statement2...ELSE statementNEND;```根据`condition`的结果,选择满足条件的值进行处理。
3.WHILE语句:循环执行一段代码,直到给定的条件不成立为止。
语法格式如下:```sqlWHILE condition DOstatement;ENDWHILE;```只要`condition`为真,就重复执行`statement`。
4.LOOP语句:无限循环执行一段代码,只能通过`LEAVE`语句或`EXIT`语句退出循环。
语法格式如下:LOOPstatement1;statement2;...IF(condition) THENLEAVELOOP;ENDIF;...ENDLOOP;```循环中的代码会一直执行,直到使用`LEAVE`语句或`EXIT`语句退出循环。
以上是一些常见的SQL流程控制语句,可以根据具体的需求选择合适的语句进行流程控制。
需要注意的是,SQL是一种声明式语言,对流程控制的支持相对有限。
sql选择数据库语句
SQL选择数据库语句是指在使用SQL语言时,选择要操作的数据库的命令。
在使用SQL语言进行数据库操作时,需要先选择要操作的数据库,才能进行表的创建、数据的插入、查询、更新等操作。
下面是一些常用的SQL选择数据库语句:
1. USE 数据库名:选择要操作的数据库,将该数据库设置为当前数据库。
2. SHOW DATABASES:查看当前数据库中有哪些数据库。
3. SHOW TABLES:查看当前数据库中有哪些表。
4. SELECT DATABASE():查看当前选择的数据库。
5. DESC 表名:查看指定表的结构。
6. DROP DATABASE 数据库名:删除指定的数据库。
7. DROP TABLE 表名:删除指定的表。
以上是一些常用的SQL选择数据库语句,希望可以帮助大家更好地使用SQL语言进行数据库操作。
- 1 -。
1 SQL 语句 一:数据库的操作 1. 数据库建立语句 查询:select * from XX 纵向查询:select id,name from XX 纵向待条件查询:select name,age,dz from XX where id='1003' 改变语句: 更改姓名:update XX set name='林逗比' where name='林小青' 更改性别:update XX set xb='男' where name='林小青' 更改年龄:update XX set age='30' where name='林小青' 格式: create database 数据库名 creates on primary(name=逻辑数据名 filename='操作数据文件路径名和文件名', size=4Mb, maxsize=6Mb filegrowth=5 ) log on (name=逻辑日志文件名, filename='逻辑日志文件路径和文件名', size=文件的大小 filegrowth=10 ) 功能1. 定义数据库名 功能2. 定义数据文件名 ,其中 on primary 定义主文档 。MDF filename='操作数据文件路径名和文件名', size=文件大小 maxsize=最大文件空间 filegrowth=5 文件的增长率
功能3: 定义日志文件 log on (name=逻辑日志文件名, 日志文件名 filename='逻辑日志文件路径和文件名', 日志文件的位置和名称 2
size=文件的大小) 日志文件大小 例如: 创建学生管理系统数据库, 主数据文件'd:\ljg\xsglxt.mdf' 文件大小4MB 、最大空间 6 MB 日志文件 学生管理系统LOG 大小 3MB 位置:'d:\ljg\xsglxtlog.ldf',
create database 学生管理系统 on primary(name=学生管理系统, filename='d:\ljg\xsglxt.mdf', size=4Mb, maxsize=6Mb ) log on (name=学生管理系统log, filename='d:\ljg\xsglxtlog.ldf', size=3mb)
go 2. 选择数据库 (打开数据库 )
格式:use 数据库 功能: 将数据库打开作为当前数据库 例如: use 学生管理系统 use msdb 3. 查看数据库中全部表信息 格式 sp_help 4. 查看指定数据库的详细信息 格式: sp_help 数据名 例如: use 学生管理系统 sp_help student 5. 查看数据库上的所有数据文件和日志文件 格式:sp_helpfile Go 6. 查看当前数据库上的组文件 格式: sp_helpfilegroup 3
7. 数据库的改名 格式: sp_rennameda 老数据库名 , 新数据库名 例如 :sp_renamedb '学生管理系统', '学生档案管理 ' sp_helpfile
8. 删除数据库 格式: drop database 数据库名 功能: 删除指定数据库( 当前数据库不能删除 ) 例如: drop database 学生管理系统
二:数据表的操作 1. 数据表的定义
格式: create table 数据表名 ( 列名1 数据类型 (宽度) char(9) 列级完整性约束条件 列名2 数据类型 (宽度) char(9) 列级完整性约束条件 列名3 数据类型 (宽度) char(9) 列级完整性约束条件 列名N 数据类型 (宽度) char(9) 列级完整性约束条件 表级完整性约束条件)
功能: 建立表的结构,设置列级完整性约束条件, 表级完整性约束条件 说明: 1. 列级完整性条件是针对属性值设置的限制条件,包括 (1) NOT NULL 或NULL NOT NULL,不容许字段为空 , NULL:容许字段为空 字段为空的含义是 该属性的值 不详 、含糊、 或无意义 对于关系的主属性必须限定为 NOT NULL,以满足实体完整性, 其他可以为NULL (2) 唯一性约束条件unique 不容许该列中出现重复的属性值 (3) 默认值约束条件DEFAULT 格式: DEFAUTL 〈默认值〉 FOR 《列名 》 例如: DEFAULT C1 20 FOR 年龄 4
(4) 检查约束条件CHECK 他通过约束条件表达式设置列值应该满足的条件 格式: CONSTRAINT CHECK 说明: 列级约束条件只约束一个列,如果涉及多个列就是表级约束条件 2. 表级约束条件涉及关系中多个列的限制, 包括 (1) 惟一性约束条件 UNIQUE 要求列的值不能有重复的使用 (2)primary KEY 实体完整性约束 用于定义主码 , 他能保证主码的惟一性和 非空性 ,直接写在主码后 格式: CONSTRAINT primary KEY 例如: CONSTRAINT BB primary KEY
(3) FOREIGN KEY 外码 和参照表约束 格式: CONSTRAINT FOREIGN KEY REFERENCES (《与外码对应的主码》) 例如: CONSTRAINT C6 FOREIGN KEY (学号) REFERENCES 学生(学号) 2. 查看表的详细信息(属性的信息) Sp_help 表名
例如:1.create table student( 学号 char(5) not null unique , 惟一 不为空 姓名 char(20) not null, 年龄 smallint , 性别 char(2), 所在系 char(20),
constraint c3 check (性别 in ('男','女' ))) 对性别的约束 查看表达信息 sp_help student 5
例如2:create table course(课程号 char(5) primary key , 课程名 char(20) , 先行课 char(5)) sp_help course 例如3:create table sc( 学号 char(5) , 课程号 char(5), 成绩 smallint, constraint c4 check (成绩 between 0 and 100), constraint c5 primary key (学号 , 课程号), constraint c6 foreign key (学号 ) references student(学号), constraint c7 foreign key (课程号)references course(课程号)) 3. 修改表的结构 (1.) 删除约束条件 alter table sc drop c5 (2.)增加约束条件 alter table sc add constraint c1 check( 性别 in (‘男’,’女’) alter table sc add constraint c1 primary key ( 学号) alter table sc add constraint c1 foreign key ( 学号) references student(学号)
(3. )增加新的列 alter table sc add ccc char (4) (4)更改列的数据类型 alter table sc
alter column ccc smallint 4. 删除表 6
格式: DROP TABALE功能: 删除指定的表 RESTRICT选项 删除有条件的 若删除的表不能被其他的表引用(CHECK FOREIG KEY), 不能有试图,等,如果有这些依赖这个表则不能删除。 CASCADE : 没有限制的删除,删除时 相关的依赖对象都被删除。 例如: drop table sc drop table course 5. 建立索引 格式: create 【unique】【CLUSTERED 】 index 索引文件名 on student (学号 desc , 年龄 asc ) 功能: 在指定的表上建立索引, Unique 惟一索引 CLUSTERED 聚簇索引:索引顺序与表的物理顺序一致。 DESC 降序 ASC 升序 例如:1 建立惟一索引 create unique index aaaa on (关于)student (学号 desc , 年龄 asc )
2 建立聚簇索引 create clustered index bbbb on student (学号 desc , 年龄 asc )
6. 删除索引 DROP INDEX
例如:drop index student.bbbb 删除时要先指定表名然后时索引名