MySql
种子之家
程序人生,人生程序
展开
-
MySql limit
use information_schemaselect table_name from tables limit 4, 10;-- 从第5行开始,查询10条记录原创 2012-08-21 09:00:15 · 352 阅读 · 0 评论 -
MySql分页
use information_schemaselect table_name from tables limit 4, 10;-- 从第5行开始,查询10条记录package com.ankangqiao.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedSta原创 2012-08-21 11:08:28 · 296 阅读 · 0 评论 -
自定义函数:获得整型包含行的数量的结果集2
drop table if exists t2; create table t2 ( s1 int, primary key (s1) ) engine=innodb; delete from t2; insert into t2(s1) values(22),(54),(15),(69); select * fr原创 2012-08-21 08:38:52 · 306 阅读 · 0 评论 -
存储过程:异常处理exit
drop table if exists t2;drop table if exists t3;drop table if exists error_log;create table t2 ( s1 int, primary key (s1) ) engine=innodb;create table t3 ( s1 int, key (s1), foreign原创 2012-08-20 11:47:41 · 474 阅读 · 0 评论 -
更新外键失败
drop table if exists t2;drop table if exists t3;create table t2 ( s1 int, primary key (s1) ) engine=innodb;create table t3 ( s1 int, key (s1), foreign key (s1) references原创 2012-08-20 11:34:47 · 684 阅读 · 0 评论 -
自定义函数:获得整型包含行的数量的结果集
drop table if exists t2; create table t2 ( s1 int, primary key (s1) ) engine=innodb; delete from t2; insert into t2(s1) values(22),(54),(15),(69); select * fr原创 2012-08-21 08:38:44 · 343 阅读 · 0 评论 -
存储过程:把所有表名连接到一个单一字符串的存储过程
drop procedure if exists tables_concat;delimiter // create procedure tables_concat (out parameter1 varchar(10000)) begin declare variable2 char(100); declare c cursor for select t原创 2012-08-21 08:38:36 · 472 阅读 · 0 评论 -
存储过程:游标
drop table if exists t; create table t (s1 int); delete from t; insert into t values (5); insert into t values (4); select * from t; drop procedure if exists p25;delimite原创 2012-08-21 08:37:50 · 329 阅读 · 0 评论 -
存储过程:异常处理condition
drop table if exists t2;create table t2 ( s1 int, primary key (s1) ) engine=innodb;delete from t2;drop procedure if exists p24;delimiter //create procedure p24 () begin declare `原创 2012-08-20 14:28:58 · 422 阅读 · 0 评论 -
存储过程HelloWorld
create database db5; use db5; ----------------------------------------------------drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;--------原创 2012-08-20 08:52:29 · 491 阅读 · 0 评论 -
存储过程,in参数(存储过程也可以定义客户端变量)
drop procedure if exists p5;delimiter // create procedure p5(p int) set @x = p// -- 定义客户端变量,p的值赋给它delimiter ;call p5(100);select @x;/*+------+| @x |+------+| 100 |+------+*/原创 2012-08-20 09:28:12 · 694 阅读 · 0 评论 -
自定义函数2
drop table if exists t; create table t (s1 int); delete from t; insert into t values (5); insert into t values (4); select * from t; drop function if exists factorial;del原创 2012-08-21 08:38:00 · 360 阅读 · 0 评论 -
存储过程:异常处理continue
drop table if exists t2;create table t2 ( s1 int, primary key (s1) ) engine=innodb;delete from t2;drop procedure if exists p23;delimiter //create procedure p23() begin原创 2012-08-20 14:21:13 · 1424 阅读 · 0 评论 -
存储过程:loop
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p16;delimiter //原创 2012-08-20 10:37:42 · 2925 阅读 · 0 评论 -
存储过程:repeat
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p15;delimiter //原创 2012-08-20 10:34:49 · 968 阅读 · 0 评论 -
存储过程:case
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p13;原创 2012-08-20 10:27:04 · 387 阅读 · 0 评论 -
存储过程IF
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p12;delimiter //原创 2012-08-20 10:06:11 · 518 阅读 · 0 评论 -
存储过程,declare
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p8;delimiter //原创 2012-08-20 09:54:21 · 633 阅读 · 0 评论 -
存储过程,out参数
drop procedure if exists p6;delimiter // create procedure p6(out p int) set p = -52// delimiter ;call p6(@gg);select @gg;原创 2012-08-20 09:31:58 · 855 阅读 · 0 评论 -
存储过程:迭代
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p20;原创 2012-08-20 11:14:32 · 786 阅读 · 0 评论 -
存储过程:标号
drop procedure if exists p17;delimiter // create procedure p17 () label_1: begin label_2: while 1 = 1 do select "循环"; leave label_2; -- 若没此句,为死循环 end while; lab原创 2012-08-20 11:02:46 · 406 阅读 · 0 评论 -
存储过程:while
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p14;delimiter //原创 2012-08-20 10:32:09 · 472 阅读 · 0 评论 -
DECIMAL NUMERIC
DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:salary DECIMAL(5,2)在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。在MySQL 5.1中以二进制格式保存DECIMAL和NUMERIC值。原创 2012-08-19 09:21:20 · 514 阅读 · 0 评论 -
CHAR和VARCHAR类型
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度原创 2012-08-19 08:36:14 · 517 阅读 · 0 评论 -
自定义函数
下列是一个例子,一个采用参数的函数使用一个SQL函数执行一个操作,并返回结果:delimiter // create function hello (s char(20)) returns char(50)return concat('hello, ',s,'!');//delimiter ; select hello('world');+----------------原创 2012-08-19 17:09:47 · 295 阅读 · 0 评论 -
子查询
我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或WHERE 子 句或 HAVING子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构。 Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。/*============================原创 2012-08-19 10:54:58 · 381 阅读 · 0 评论 -
SQL内 连接(只连接匹配的行)
/*==============================================================*//* DBMS name: MySQL 5.0 *//* Created on: 2012/8/19 8:45:30 */原创 2012-08-19 09:56:36 · 1862 阅读 · 0 评论 -
存储过程4:查询数据
drop procedure if exists proc_name;delimiter //create procedure proc_name (in parameter integer)begin if parameter=0 then select * from student order by no asc; else select * from student ord原创 2012-08-19 18:16:20 · 469 阅读 · 0 评论 -
存储过程3:加法
drop procedure if exists pr_add; create procedure pr_add(in a int, in b int) begin declare c int; if a is null then set a = 0; end if; if b is null then set b = 0; en原创 2012-08-19 17:59:55 · 3427 阅读 · 0 评论 -
存储过程
下面是一个使用OUT参数的简单的存储程序的例子。例子为,在 程序被定义的时候,用mysql客户端delimiter命令来把语句定界符从 ;变为//。这就允许用在 程序体中的;定界符被传递到服务器而不是被mysql自己来解释。当使用delimiter命令时,你应该避免使用反斜杠(‘\’)字符,因为那是MySQL的 转义字符。/*====================原创 2012-08-19 17:00:47 · 322 阅读 · 0 评论 -
SQL外连接
之前我们看到的左连接 (left join),又称内部连接 (inner join)。在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。那如果我们想要列出一个表格中每一笔的资料,无论它的值在另一个表格中有没有出现,那该怎么办呢?在这个时候,我们就需要用到 OUTER JOIN (外部连接) 的指令。内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是原创 2012-08-19 10:36:45 · 383 阅读 · 0 评论 -
SQL自连接
/*在employee中的每一个员工都有自己的,并且每一个经理自身也是公司的员工,自身也有自己的经理。*下面我们需要将每一个员工自己的名字和经理的名字都找出来。这时候我们该怎么做呢?*/drop table if exists employee;/*==============================================================*/原创 2012-08-19 14:45:55 · 390 阅读 · 0 评论 -
存储过程,作用域
drop procedure if exists p11;delimiter // create procedure p11 () begin declare x1 char(5) default 'outer'; begin declare x1 char(5) default 'inner'; select x1; end;原创 2012-08-20 10:01:53 · 486 阅读 · 0 评论 -
存储过程,default
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists原创 2012-08-20 09:57:39 · 980 阅读 · 0 评论 -
存储过程,连接符,sql_mode
set sql_mode='ansi';drop procedure if exists p3;delimiter //create procedure p3()select'a'||'b'// delimiter ;set sql_mode='';call p3();/*+----------+| 'a'||'b' |+----------+| ab原创 2012-08-20 09:05:28 · 758 阅读 · 0 评论 -
MySql常用的show指令
use database_name -- 使用某数据库show databases; -- 显示所有数据库show tables; -- 显示该数据库下的所有表show table status;-- 显示该数据库下的所有表(信息更详尽)show create table table_name; -- 显示创建表的语句show columns from table_na原创 2012-08-21 08:38:13 · 446 阅读 · 0 评论 -
存储过程begin/end
drop table if exists t;create table t (s1 int); insert into t values (5); select * from t;-- --------------------------------------------------drop procedure if exists p7;delimiter //原创 2012-08-20 09:39:15 · 2824 阅读 · 0 评论 -
检查MySql的版本
-- 为了确认使用的MySQL的版本是正确的,我们要查询版本。show variables like 'version'; select version();原创 2012-08-20 08:51:08 · 375 阅读 · 0 评论 -
存储过程2
存储过程,在命令行直接创建的话,在第五排你输入分号后就报错了。因为MYSQL以为这个语句结束了,那对于MYSQL而言肯定是个错误语句。如何解决这个问题呢?只要在这个语句前后加分隔符就可以了。DELIMITER //drop procedure if exists proc_name;create procedure proc_name (in parameter i原创 2012-08-19 17:52:49 · 419 阅读 · 0 评论 -
1.显示的字段要有老师name, age 每个老师所带的学生人数,2 只列出老师age为40以下学生age为12以上的记录
drop table if exists tea_stu;drop table if exists teacher;drop table if exists student;create table teacher(teaID int primary key,name varchar(50),age int);create table student(stuID int primary原创 2012-08-19 16:16:22 · 3417 阅读 · 2 评论