随笔分类 - MySQL
摘要:一:查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleId in (select peopleId from people group by peop
阅读全文
摘要:Mysql(driverdownload: http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.6.zip): Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cmsjsp?user=root&password=");Oracle(driverdownload: ): Met
阅读全文
摘要:存储过程-学习1. 使用MySQL Query Browser(http://dev.mysql.com/downloads/)作为文本编辑器,编写一下存储过程并存为文件helloWorld.sql 2. 在MySQL命令行,直接执行helloWorld.sql3. 执行存储过程:CALL helloWorld()$$变量: 参数: OUT 参数: 调用:CALL my_sqrt(10);取得OUT返回值:SELECT$out_value $$
阅读全文
摘要:数据库存储程序分成三类:存储过程:存储过程是能够接受数个输入和输出参数并且能够在请求时被执行的程序单元存储函数:存储函数和存储过程很相像,但它的执行结果会返回一个值,最重要的事存储函数可以被用来充当标准的SQL语句,允许程序员有效的扩展SQL语言的能力触 发 器:触发器是用来响应激活数据库行为,事件的存储程序,通常,触发器用来作为DML(数据库操纵语言)的响应而被调用,触发器可以被用来作为数据校验和自动反向格式化1. 先看一个例子: 2. 控制和条件逻辑 3. 存储函数 使用存储函数:SELECT firstname, surname, date_of_birth, f_age(date_of
阅读全文
摘要:Create MySQL Procedure:CREATE PROCEDURE procedureName([IN|OUT|INOUT] parameterName dataType)BEGIN MySQL语句;END;MySQL存储过程参数如果不显示指定'in', 'out', 'inout', 则默认为'in', 习惯上,对于'in'的参数 ,我们都不会显示指定。NOTES1. MySQL存储过程明知后面的'()'是必须的,即使没有一个参数,也需要'()'2. MySQL存储过程
阅读全文
摘要:INSERT INTO <表名>[(<属性列1>[,<属性列2>…])]INSERT INTO SC(Sno, Cno) SELECT Sno, ‘1143’ FROM Student;UPDATE SC SET Grade = NULL WHERE Cno = ‘1233’ AND Sno IN( SELECT Sno FROM Student WHERE Sdept = ‘Computer’);DELETE FROM SC WHERE Sno IN( SELECT Sno FROM Student WHERE Sdept = ‘Computer’);
阅读全文
摘要:嵌套查询SELECT Sname FROM Student WHERE Sdept IN (“Computer”, ”Management”); //括号里的斜体表是一个小的集合,如果把括号里面的集合换成一个查询语句就变成嵌套查询了SELECT Sname FROM Student WHERE Sno IN (SELECT Sno FROM SC WHERE Cno = ‘1024’); //变成嵌套集合了嵌套操作符(=, <, <=, >, >=, <>):x IN S如果x是S的成员,则返回真,否则返回假x > S如果x与S中的唯一元素满足>
阅读全文
摘要:连接查询SELECT SC.Sno, C.Cname, C.GradeFROM SC, Course CWHERE SC.Cno = C.Cno; //表外连接SELECT A.Cno, B.CpnoFROM Course A, Course BWHERE A.Cpno = B.Cno; //表内连接SELECT C.Cno, C.Cname, COUNT(SC.Sno)FROM Course C, SCWHERE C.Cno =* SC.CnoGROUP BY C.Cno; //*为外连接符号,*出现在连接条件的右边称为左外连接,*出现在连接条件的左边称为右外连接SELECT S.Sname
阅读全文
摘要:INSERT INTO <表名>[(<属性列1>[, <属性列2>…])] VALUES(<常量1>[, <常量2>…]);INSERT INTO Student(Sno, Sname, Ssex, Sdept, Sage) VALUES('2000232', 'Jeff', 'male', 'computer', 20);UPDATE <表名> SET <列名>=<表达式>[, <列名>=<表达式>]… [WH
阅读全文
摘要:操作方式创建删除修改表CREATE TABLEDROP TABLEALTER TABLE视图CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEXTABLE:数据类型含义CHAR(n)长度为n的定长字符串VARCHAR(n)最大长度为n的变长字符串INT长整数(也可以写作INTEGER)SMALLINT短整数NUMERIC(p, d)定点数,由p位数字(不包括符号,小数点)组成,小数后面有d位数字REAL取决于机器精度的浮点数DOUBLE PERCISION取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少为n位数字DTAE时期,包含年、月、日,格式
阅读全文
摘要://主键alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);//删除列alter table t2 drop column c;//重命名列alter table t1 change a b integer;//改变列的类型alter table t1 change b b bigint not null;alter table infos change list list tinyint not null
阅读全文