精华内容
下载资源
问答
  • 2021-03-17 09:54:43

    本人有时候经常使用封装好的增删改查,以至于有时候简单的增删改查都忘记怎么写,所以在此记录,以便之后查阅

    由于mysq与selserver不同,所以在使用的时候,有区别,最简单的是表名称(sqlserver 里 [表名称])mysql里 表名称

    select * from [user] //无条件查询,查询user表里所有数据。

    select * from [user] where id =‘1’//查询user表里所有id为1的数据

    select username,sex from [user] where id =‘1’//查询user表里所有id为1的username字段,与sex的值
    select * from [shop] where shopname like ‘%A%’ //查询shop表里所有shopname字段包含A的数据

    select username,sex,(select position from position_type where userid=position.userid) as position from [user] where userid=‘1’//跨表查询,查询用户表的姓名,性别,以及职位表中对应的职位

    如上所示:有的时候得到的数据是两个表组合得到的数据,这个时候只能用于查看,但是附加的表不能作为条件来限制某些特定情况。这个时候,就需要将这两个虚拟表整合成为一个表从而可以使用其中的字段作为条件来限制

    如:

    select * from(select username,sex,(select position from position_type where userid=position.userid) as position from [user] where userid=‘1’) t where position=1//这里我们可以看出position是附加表,这里讲用户表与职位表整合成表 “ t ”,于是查询这个 “ t ” 表并将职位作为限制条件就可以了
    SqlHelper.Query(“select * from username where id”+id);//sqlhelper方法整合了一些执行语句,这个是执行sql语句命令

    select username,case sex when ‘0’ then ‘保密’ when ‘1’ then ‘男’ when ‘2’ then ‘女’ end as sex_str from user where userid=1//这里的意思是有的时候数据库存储的是01等简单字符,但是为了显示其含义可以用case来转换

    select * from user where age between 10 and 20//查询用户表中年龄在20到30之间的数据

    select * from user where age=10 or 20//查询用户表中年龄是10以及20的数据

    select * from user where age in(11,14,17)//查询年龄分别是11,14,17的数据

    查询名字是文开头的:
    select * from user where username like ‘文%’;

    查询名字是文开头的,且为两个字的:
    select * from stud where sname like ‘张_’;

    通过性别不同分组查数据:

    select sex, avg(age) as 平均年龄 from user group by sex;

    delete * from username //将这个表的数据删除

    delete * from username where userid=1//将userid为1 的这条数据从数据库删除
    SqlHelper.Query(“delete * from [user]”);//sqlserver
    SqlHelper.Query("delete * from user");//mysql

    update username set mingzi=‘haha’;//将表中所有数据的mingzi修改为haha

    update username set mingzi=’"+name+"’,mima=’"+psd+"’ where id=’"+id+"’;//将表中id为指定id的mingzi修改为指定名称,mima修改为指定mima

    SqlHelper.Query("");

    sql=“insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)” //插入表中数据
    SQL SERVER :SqlHelper.Query(“insert into user (name,sex)values(’”+name+"’,’"+sex+"’)");
    MY SQL :SqlHelper.Query(“insert into user (name,sex)values(’”+name+"’,’"+sex+"’)");

    更多相关内容
  • SQL常用增删改查语句

    2013-10-30 14:04:25
    文档整理了SQL常用的增加删除修改查询语句。分别有基本语句,高级查询语句,函数查询语句,事务,存储过程等。
  • 学习笔记-mysql增删改查操作语句

    万次阅读 2021-01-21 08:21:39
    1.mysql增删改查操作语句:1)如果想在一个已经建好的表中添加一列,可以用以下代码:alter table t1 add column addr varchar(20) not null;2)这条语句会向已有的表t1中加入一列,这一列在表的最后一列位置。如果...

    1.mysql增删改查操作语句:

    1)如果想在一个已经建好的表中添加一列,可以用以下代码:

    alter table t1 add column addr varchar(20) not null;

    2)这条语句会向已有的表t1中加入一列,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:

    alter table t1 add column addr varchar(20) not null after user1;

    注意,上面这个命令的意思是说添加addr列到user1这一列后面。如果想添加到第一列的话,可以用:

    alter table t1 add column addr varchar(20) not null first;

    3)将表t1中,列名name改为firstname

    alter table t1 change name firstname char;

    4)将表t1中,列名为def的列删除

    alter table t1 drop column def ;

    5)复制table表

    create table 新表名(select ID,name,number,numberid from 要复制的表名);

    6)查看表的各种数据类型

    describe `t1` 等同于 desc t1

    7)查看表的已存数据

    select * from 表名  或  select id,name,number,numberid from 表名

    8)添加数据

    insert into 表名 (ID,name,number,numberid) values(1,'mysql',220,1),(2,'HTML',160,1),(3,'python',230,1);

    9)删除数据

    delete from 表名 where 条件;

    10)修改数据

    update 表名 set numberid=2 where 条件

    11)降序排列

    select id,name,number,numberid from 表名 order by id desc;

    12)添加别名

    select (列名) '别名' ,(列名) as '别名' from 表名;

    2.获取前10条数据:

    select * from t1 limit 10;

    3.完全相同的数据,只更新第一条:

    update t4 set Id_O=1 where orderno=77895 order by Id_O desc limit 1;

    4.修改表名(把t2修改成t3):

    alter table t2 rename to t3;

    5.把t3表中重复的数据删掉只剩下一行:

    1)先查询重复的数据:

    select * from t3 where OrderDate in (select OrderDate from t3 group by OrderDate having count(*) >1);

    2)把重复的数据去重先保存到一张临时表中:

    create table tmp select distinct * from t3 where OrderDate in (select OrderDate from t3 group by OrderDate,O_Id having count(*) >1);

    3)删除t3表中所有重复的数据:

    delete from t3 where OrderDate in (select t.OrderDate from (select OrderDate from t3 group by OrderDate having count(*) >1) t);

    4)把处理后没有重复数据的tmp表中值重新放入到t3表中:

    insert into t3 select * from tmp;

    6.在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,再接着导入所有数据后,怎样删除重复字段

    1)添加自增列(first是在第一列添加):

    alter table t1 add column id int(11) primary key auto_increment first;

    2)删除重复数据:

    delete from t1 where id not in (select tt.id from (select max(id) as id from t1 group by OrderDate,OrderPrice) as tt);

    3)删除自增列id

    alter table t1 drop column id;

    7.查询语句的灵活使用:

    1)查询全部的记录:

    select * from t1 ;

    2)查第一条记录:

    select * from t1 limit 1;

    3)查前面两条记录:

    select * from t1 limit 0,2;

    4)查第二和第三条记录:

    select * from t1 limit 1,2;

    5)查最后一条记录:

    select * from t1 order by id DESC limit 1;

    展开全文
  • 目录MySQL的存储过程MySQL存储过程的创建分隔符参数过程体IN参数例子OUT参数例子INOUT参数例子变量数值类型日期和时间类型字符串类型变量赋值...修改MySQL存储过程的删除MySQL存储过程的控制语句变量作用域条件语句IF...

    MySQL的存储过程

    存储过程是数据库的一个重要的功能,MySQL 5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0开始支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

    MySQL存储过程的创建

    语法
    CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型>[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 …] 过程体

    DELIMITER //
      CREATE PROCEDURE myproc(OUT s int)
        BEGIN
          SELECT COUNT(*) INTO s FROM students;
        END
        //
    DELIMITER ;
    

    分隔符

    MySQL默认以";“为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER //”声明当前段分隔符,让编译器把两个”//"之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原。

    参数

    存储过程根据需要可能会有输入、输出、输入输出参数,如果有多个参数用","分割开。MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT:

    IN参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
    OUT:该值可在存储过程内部被改变,并可返回
    INOUT:调用时指定,并且可被改变和返回

    过程体

    过程体的开始与结束使用BEGIN与END进行标识(可进行嵌套使用)。

    IN参数例子

    DELIMITER //
      CREATE PROCEDURE in_param(IN p_in int)
        BEGIN
        SELECT p_in;
        SET p_in=2;
        SELECT p_in;
        END;
        //
    DELIMITER ;
    #调用
    SET @p_in=1;
    CALL in_param(@p_in);
    SELECT @p_in;
    

    执行结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    以上可以看出,p_in虽然在存储过程中被修改,但并不影响@p_id的值

    OUT参数例子

    #存储过程OUT参数
    DELIMITER //
      CREATE PROCEDURE out_param(OUT p_out int)
        BEGIN
          SELECT p_out;
          SET p_out=2;
          SELECT p_out;
        END;
        //
    DELIMITER ;
    #调用
    SET @p_out=1;
    CALL out_param(@p_out);
    SELECT @p_out;
    

    执行结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    INOUT参数例子

    #存储过程INOUT参数
    DELIMITER //
      CREATE PROCEDURE inout_param(INOUT p_inout int)
        BEGIN
          SELECT p_inout;
          SET p_inout=2;
          SELECT p_inout;
        END;
        //
    DELIMITER ;
    #调用
    SET @p_inout=1;
    CALL inout_param(@p_inout) ;
    SELECT @p_inout;
    

    执行结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    变量

    语法:

    DECLARE 变量名1[,变量名2…] 数据类型 [默认值];
    数据类型为MySQL的数据类型:

    数值类型

    在这里插入图片描述

    日期和时间类型

    在这里插入图片描述

    字符串类型

    在这里插入图片描述

    变量赋值

    语法: SET 变量名 = 变量值 [,变量名= 变量值 …]

    用户变量

    用户变量一般以@开头
    注意:滥用用户变量会导致程序难以理解及管理
    

    在MySQL客户端使用用户变量

    SELECT 'Hello World' into @x;
    SELECT @x;
    SET @y='Goodbye Cruel World';
    SELECT @y;
    SET @z=1+2+3;
    SELECT @z;
    

    执行结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在存储过程中使用用户变量

    CREATE PROCEDURE GreetWorld() SELECT CONCAT(@greeting,' World');
    SET @greeting='Hello';
    CALL GreetWorld();
    

    执行结果:
    在这里插入图片描述

    在存储过程间传递全局范围的用户变量

    CREATE PROCEDURE p1() SET @last_proc='p1';
    CREATE PROCEDURE p2() SELECT CONCAT('Last procedure was ',@last_proc);
    CALL p1();
    CALL p2();
    

    执行结果:
    在这里插入图片描述

    注释

    MySQL存储过程可使用两种风格的注释:

    • 双杠:–,该风格一般用于单行注释
    • C风格: 一般用于多行注释

    MySQL存储过程的调用

    用call和你过程名以及一个括号,括号里面根据需要,加入参数,参数包括输入参数、输出参数、输入输出参数。

    call 存储过程名(a,b,c…)
    ()中如果无参数也可不传参

    MySQL存储过程的查询

    #查询存储过程
    SELECT name FROM mysql.proc WHERE db='数据库名';
    SELECT routine_name FROM information_schema.routines WHERE routine_schema='数据库名';
    SHOW PROCEDURE STATUS WHERE db='数据库名';
    #查看存储过程详细信息
    SHOW CREATE PROCEDURE 数据库.存储过程名;
    #查看存储过程创建语句
    --查看所有用户定义的存储过程
    select * from mysql.proc where definer='root@%';
    --指定某一个存储过程
    select body from mysql.proc where definer='root@%' and name  ='存储过程名';
    

    MySQL存储过程的修改

    ALTER PROCEDURE 更改用CREATE PROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。

    ALTER {PROCEDURE | FUNCTION} sp_name [characteristic …]
    characteristic:
    { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT ‘string’

    • sp_name参数表示存储过程或函数的名称;
    • characteristic参数指定存储函数的特性。
    • CONTAINS SQL表示子程序包含SQL语句,但不包含读或写数据的* 语句;
    • NO SQL表示子程序中不包含SQL语句;
    • READS SQL DATA表示子程序中包含读数据的语句;
    • MODIFIES SQL DATA表示子程序中包含写数据的语句。
    • SQL SECURITY { DEFINER | INVOKER }指明谁有权限来执行,DEFINER表示只有定义者自己才能够执行;INVOKER表示调用者可以执行。
    • COMMENT 'string’是注释信息。

    实例:

    #将读写权限改为MODIFIES SQL DATA,并指明调用者可以执行。
    ALTER  PROCEDURE  num_from_employee
      MODIFIES SQL DATA
      SQL SECURITY INVOKER ;
    #将读写权限改为READS SQL DATA,并加上注释信息'FIND NAME'。
    ALTER  PROCEDURE  name_from_employee
      READS SQL DATA
      COMMENT 'FIND NAME' ;
    

    MySQL存储过程的删除

    DROP PROCEDURE [过程1[,过程2…]]

    从MySQL的表格中删除一个或多个存储过程。

    MySQL存储过程的控制语句

    变量作用域

    内部变量在其作用域范围内享有更高的优先权,当执行到end时,内部变量消失,不再可见了,在存储
    过程外再也找不到这个内部变量,但是可以通过out参数或者将其值指派给会话变量来保存其值。

    #变量作用域
    DELIMITER //
      CREATE PROCEDURE proc()
        BEGIN
          DECLARE x1 VARCHAR(5) DEFAULT 'outer';
            BEGIN
              DECLARE x1 VARCHAR(5) DEFAULT 'inner';
              SELECT x1;
            END;
          SELECT x1;
        END;
        //
    DELIMITER ;
    #调用
    CALL proc();
    

    执行结果:

    在这里插入图片描述
    在这里插入图片描述

    条件语句

    IF-THEN-ELSE语句:

    #条件语句IF-THEN-ELSE
    DROP PROCEDURE IF EXISTS proc3;
    DELIMITER //
    CREATE PROCEDURE proc3(IN parameter int)
      BEGIN
        DECLARE var int;
        SET var=parameter+1;
        IF var=0 THEN
          INSERT INTO t VALUES (17);
        END IF ;
        IF parameter=0 THEN
          UPDATE t SET s1=s1+1;
        ELSE
          UPDATE t SET s1=s1+2;
        END IF ;
      END ;
      //
    DELIMITER ;
    

    CASE-WHEN-THEN-ELSE语句:

    #CASE-WHEN-THEN-ELSE语句
    DELIMITER //
      CREATE PROCEDURE proc4 (IN parameter INT)
        BEGIN
          DECLARE var INT;
          SET var=parameter+1;
          CASE var
            WHEN 0 THEN
              INSERT INTO t VALUES (17);
            WHEN 1 THEN
              INSERT INTO t VALUES (18);
            ELSE
              INSERT INTO t VALUES (19);
          END CASE ;
        END ;
      //
    DELIMITER ;
    

    WHILE-DO…END-WHILE 循环语句:

    DELIMITER //
      CREATE PROCEDURE proc5()
        BEGIN
          DECLARE var INT;
          SET var=0;
          WHILE var<6 DO
            INSERT INTO t VALUES (var);
            SET var=var+1;
          END WHILE ;
        END;
      //
    DELIMITER ;
    

    REPEAT…END REPEAT:

    此语句的特点是执行操作后检查结果

    DELIMITER //
      CREATE PROCEDURE proc6 ()
        BEGIN
          DECLARE v INT;
          SET v=0;
          REPEAT
            INSERT INTO t VALUES(v);
            SET v=v+1;
            UNTIL v>=5
          END REPEAT;
        END;
      //
    DELIMITER ;
    

    LOOP…END LOOP:

    DELIMITER //
      CREATE PROCEDURE proc7 ()
        BEGIN
          DECLARE v INT;
          SET v=0;
          LOOP_LABLE:LOOP
            INSERT INTO t VALUES(v);
            SET v=v+1;
            IF v >=5 THEN
              LEAVE LOOP_LABLE;
            END IF;
          END LOOP;
        END;
      //
    DELIMITER ;
    

    ITERATE迭代:

    通过引用复合语句的标号,来从新开始复合语句

    #ITERATE
    DELIMITER //
      CREATE PROCEDURE proc8()
      BEGIN
        DECLARE v INT;
        SET v=0;
        LOOP_LABLE:LOOP
          IF v=3 THEN
            SET v=v+1;
            ITERATE LOOP_LABLE;
          END IF;
          INSERT INTO t VALUES(v);
          SET v=v+1;
          IF v>=5 THEN
            LEAVE LOOP_LABLE;
          END IF;
        END LOOP;
      END;
      //
    DELIMITER ;
    

    MySQL存储过程的基本函数

    字符串类

    CHARSET(str) //返回字串字符集
    CONCAT (string2 [,… ]) //连接字串
    INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0
    LCASE (string2 ) //转换成小写
    LEFT (string2 ,length ) //从string2中的左边起取length个字符
    LENGTH (string ) //string长度
    LOAD_FILE (file_name ) //从文件读取内容
    LOCATE (substring , string [,start_position ] ) 同INSTR,但可指定开始位置
    LPAD (string2 ,length ,pad ) //重复用pad加在string开头,直到字串长度为length
    LTRIM (string2 ) //去除前端空格
    REPEAT (string2 ,count ) //重复count次
    REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str
    RPAD (string2 ,length ,pad) //在str后用pad补充,直到长度为length
    RTRIM (string2 ) //去除后端空格
    STRCMP (string1 ,string2 ) //逐字符比较两字串大小,
    SUBSTRING (str , position [,length ]) //从str的position开始,取length个字符,
    注:mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1

    SELECT SUBSTRING('abcd',0,2);
    

    结果:
    在这里插入图片描述

    SELECT SUBSTRING('abcd',1,2);
    

    结果:
    在这里插入图片描述

    TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字符
    UCASE (string2 ) //转换成大写
    RIGHT(string2,length) //取string2最后length个字符
    SPACE(count) //生成count个空格

    数字及进制类

    ABS (number2 ) //绝对值
    BIN (decimal_number ) //十进制转二进制
    CEILING (number2 ) //向上取整
    CONV(number2,from_base,to_base) //进制转换
    FLOOR (number2 ) //向下取整
    FORMAT (number,decimal_places ) //保留小数位数
    HEX (DecimalNumber ) //转十六进制
    注:HEX()中可传入字符串,则返回其ASC-11码,如HEX(‘DEF’)返回4142143
    也可以传入十进制整数,返回其十六进制编码,如HEX(25)返回19
    LEAST (number , number2 [,…]) //求最小值
    MOD (numerator ,denominator ) //求余
    POWER (number ,power ) //求指数
    RAND([seed]) //随机数
    ROUND (number [,decimals ]) //四舍五入,decimals为小数位数] 注:返回类型并非均为整数,如:

    #默认变为整型值
    SELECT ROUND(1.23);
    

    在这里插入图片描述

    SELECT ROUND(1.56);
    

    在这里插入图片描述

    #设定小数位数,返回浮点型数据
    SELECT ROUND(1.567,2);
    

    在这里插入图片描述

    SIGN (number2 ) // 正数返回1,负数返回-1

    日期时间类

    ADDTIME (date2 ,time_interval ) //将time_interval加到date2
    CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //转换时区
    CURRENT_DATE ( ) //当前日期
    CURRENT_TIME ( ) //当前时间
    CURRENT_TIMESTAMP ( ) //当前时间戳
    DATE (datetime ) //返回datetime的日期部分
    DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或时间
    DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式显示datetime
    DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上减去一个时间
    DATEDIFF (date1 ,date2 ) //两个日期差
    DAY (date ) //返回日期的天
    DAYNAME (date ) //英文星期
    DAYOFWEEK (date ) //星期(1-7) ,1为星期天
    DAYOFYEAR (date ) //一年中的第几天
    EXTRACT (interval_name FROM date ) //从date中提取日期的指定部分
    MAKEDATE (year ,day ) //给出年及年中的第几天,生成日期串
    MAKETIME (hour ,minute ,second ) //生成时间串
    MONTHNAME (date ) //英文月份名
    NOW ( ) //当前时间
    SEC_TO_TIME (seconds ) //秒数转成时间
    STR_TO_DATE (string ,format ) //字串转成时间,以format格式显示
    TIMEDIFF (datetime1 ,datetime2 ) //两个时间差
    TIME_TO_SEC (time ) //时间转秒数]
    WEEK (date_time [,start_of_week ]) //第几周
    YEAR (datetime ) //年份
    DAYOFMONTH(datetime) //月的第几天
    HOUR(datetime) //小时
    LAST_DAY(date) //date的月的最后日期
    MICROSECOND(datetime) //微秒
    MONTH(datetime) //月
    MINUTE(datetime) //分返回符号,正负或0
    SQRT(number2) //开平方

    存储过程简介:

    MySql存储过程(一):简介

    展开全文
  • 数据库常用增删改查语句

    千次阅读 2021-03-24 17:04:11
    timestamp 如果未给时间,则自动存储记录修改时间为当前系统时间 e、二进制数据(Blob) 存储二进制数据,用来存储大文件 多媒体文件 12、向表中添加数据 insert into 表的名字 (列名1,列名2,…) values (值1,值2...

    mysql -u root -p
    1、显示数据库表
    show databases;
    2、建库
    create database 建的数据库名

    3、指定使用的数据库
    use 数据库名

    4、显示数据库下的表
    show tables

    5、建表
    create table 新建的表名(列的名字 列的类型 NOT NULL, …, primary key(要设为主键的列名字));
    primary 是为主键约束,设为主键的数据是不可以重复
    NOT NULL 是不能为空的约束,这个设置的数据在插入数据的时候是不可以为空

    6、更新表结构
    alter table 表名 add column 列的名字 列的类型;

    7、删除表结构
    alter table 表名 drop column 列的名字;

    8、删除库
    drop database 库名

    9、删除表
    drop table 表名字

    10、查询表结构
    desc table 表名;

    11、数据库类型
    a、整型
    tinyint(m) 1个字节 范围(-128~127)
    smallint(m) 2个字节 范围(-32768~32767)
    mediumint(m) 3个字节 范围(-8388608~8388607)
    int(m) 4个字节 范围(-2147483648~2147483647)
    bigint(m) 8个字节 范围(±9.22*10的18次方)

    b、浮点型(float 和 double)
    float(m,d) 单精度浮点型 8位精度(4个字节) m总个数,d小数位
    double(m,d) 双精度浮点型 16位精度(8个字节) m总个数,d小数位

    c、字符串(char,varchar,tinytext,text,mediumtext,longtext)
    char(n) 固定长度,最多255个字符,可指定长度
    varchar(n) 固定长度,最多65535个字符,可指定长度
    tinytext 可变长度,最多255个字符
    text 可变长度,最多65535个字符
    mediumtext 可变长度,最多2的24次方-1个字符
    longtext 可变长度,最多2的32次方-1个字符

    d、日期和时间类型 datetime、date、timestamp、time和year
    date 日期’2008-12-2’
    time 时间’12:25:36’
    datetime 日期时间’2008-12-2 22:06:44’
    timestamp 如果未给时间,则自动存储记录修改时间为当前系统时间

    e、二进制数据(Blob)
    存储二进制数据,用来存储大文件 多媒体文件

    12、向表中添加数据
    insert into 表的名字 (列名1,列名2,…) values (值1,值2,…)
    在插入的数据每一列都有值的时候,就可以直接用如下语句
    insert into values (值1,值2,…)

    13、更新数据
    将整个列的数据更新:upadte 表名 set 列名=表达式
    更新指定条件的的数据: update 表名 set 列名=表达式 where 条件表达式
    多列同时更新:update 表名 set 列名1=表达式1,列名2=表达式2,… where 条件表达式

    14、删除表中的数据
    将表完全删除,包括数据和结构: drop table 表名
    清空表,删除表内所有数据(表中有多少条记录就执行多少次删除sql语句):delete from 表名
    只删除符合条件的数据:delete from 表名 where 条件表达式
    清空表,尽量使用(只执行两条sql语句删除和创建同表名的空表):truncate table 表名;

    15、查询数据
    查询全部数据 select * from 要查询的表名
    查询某一个列的数据: select 列名 from 表名
    查询多个列名的数据: select 列名1,列名2… from 表名

    查询是给列设定别名通过as关键字 别名可以是汉子,需要加双引号
    select 列名 as “别名” from 表名

    从查询的数据中删除重复的数据: select distinct 列名1,列名2,… from 表名
    查询符合条件的数据:select 列名 from 表名 where 条件表达式

    查询时修改查询的结果: select 列名±*/运算符 from 表名

    模糊查询: select 列名 from 表名 where 列名 like “%模糊的字%”
    %代表在模糊查询的字的前面或后面有其他字

    查询数据在指定条件中的数据: select 列名 from 表名 where 列名 in(指定数据1,指定数据2,指定数据3,…)

    查询符合多个条件的数据:
    select 列名 from 表名 where 条件1 and 条件2
    select 列名 from 表名 where 条件1 or 条件2

    查询聚合函数
    计算查询数据的数量: select count(列名) from 表名
    计算查询数据的总和:select sum(列名) from 表名
    计算查询数据的平均值: select avg(列名) from 表名
    筛选出查询数据中的最大值: select max(列名) from 表名
    筛选出查询数据中的最小值: select min(列名) from 表名

    分组合过滤
    对查询出的数据进行分组: select 列名1,列名2,… from 表名 group by 要按分组的列名
    对聚合查询的数据进行过滤: select 列名 from 表名 group by 列名 having 过滤的表达式

    查询的数据排序
    对查询的结果排序,默认为升序asc, 降序是desc
    select 列名 from 表名 order by 排序的列名1,排序的列名2
    select 列名 from 表名 order by 排序的列名1 asc,排序的列名2 desc

    多个表连接查询
    内连接(inner) : select * from 表名1 表名1的别名 inner 内连接的表名2 表名2的别名 on 两个表关联查询的条件
    查询左边表的数据都显示、右边的表的数据有没有都可以使用 left join:
    select * from 表名1 表名1的别名 left join 表名2 表名2的别名 on 两个表关联的查询条件
    查询右边表的数据都显示、左边的表的数据有没有都可以使用 right join:
    select * from 表名1 表名1的别名 right join 表名2 表名2的别名 on 两个表关联的查询条件
    查询左右表所有的数据,没有的显示null 使用full join
    select * from 表名1 表名1的别名 full join 表名2 表名2的别名 on 两个表关联的查询条件

    展开全文
  • 【SQL基础-1】SQL基本语句增删改查

    千次阅读 2022-03-16 10:54:07
    目录1 SQL 增删改查基本语句2 查:select 语句2.1 select 基本语句2.2 Select distinct 语句2.3 Select … where 语句2.4 Select … order by 语句2.5 Select … group by 语句2.6 SELECT TOP 子句2.7 Select … ...
  • mysql增删改查语句大全

    万次阅读 多人点赞 2018-05-21 16:05:37
    #含有qq字符 _表示一个 % 表示多个 select * from test order by id asc ;#降序desc select * from test id not in ( ' 2 ' , ' 3 ' );#id不含2,3或者去掉not表示含有 select * from ...
  • 【SQL基础】SQL增删改查基本语句

    千次阅读 2022-02-07 21:06:48
    1. 掌握select及添加各种条件的查询语句; 2. 掌握insert 、delete、update等增删改语句; 3. 掌握增删改查中包含子查询的语句; 4. 掌握数据库的连接与退出方式。
  • 数据库增加数据: 1)插入单行 insert [into] (列名) values (列值) 例:insert into t_table (name,sex,birthday) values ('开心朋朋','男','1980/6/15') 2)将...insert intoVB里面语句,怎么实现对SQL数据库里面...
  • Sql基本语句增删改查

    2022-03-13 17:18:31
    依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。 truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。 注意:truncate 不能删除行...
  • sql语句增删改查存储过程,数据库开发)大全
  • 一、基础功能 二、聚合函数 (单表查询 三、 多表查询,表联结 四、 查询练习&新增行语句 五、创建表 六、删除表 七、对表结构的修改语句 八、虚拟表
  • create or replace procedure mydemo07(ids in int, username...-- insert into students(id,username,userpass,userage)-- -- values(ids,username,userpass,userage); -- delete from students where id=ids;-- -
  • C#ASP .NET数据库应用程序实现增删改查,一个文本框+一个按钮,实现点击按钮不但可以执行Insert、Update和Delete语句,而且也可以执行Select语句
  • asp.net实现oracle存储过程增删改查示例 (1)三层架构实现 (2)oracle存储过程实现增删改查 (3)oracle sql语句实现增删改查 (4)asp.net代码调用 (5)ibatis框实现增删改查 我在公司学习了一个星期的作品,...
  • MySQL(4) 数据库增删改查SQL语句(整理集合大全)

    万次阅读 多人点赞 2018-09-19 19:07:43
    全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定要使用别名 ...
  • MySQL数据库增删改查常用语句详解

    千次阅读 2020-09-21 17:48:28
    MySQL数据库增删改查常用语句详解一 MySQL数据库表结构1.1 常见数据类型1.2 常用约束类型1.3 MySQL存储引擎二 MySQL前置基本操作2.1 修改数据库密码2.1.1 创建登录用户2.1.2 给用户授权登录2.1.3 测试用户登录2.1.4 ...
  • SQL语句增删改查

    2015-01-30 19:43:14
    SQL SERVER语句-存储过程自动实现增删改查-想看的可以看
  • JAVA之MySQL数据库增删改查【Java入门练手】

    千次阅读 多人点赞 2022-04-20 22:35:54
    把我们需要删除的id输入,存储到变量a,执行service.delete方法,传递a给service类。 3.2.1,service.delete方法 public int delete(int a) throws SQLException { // TODO Auto-generated method stub return dao....
  • MySQL数据库增删改查SQL语句

    千次阅读 2021-02-11 18:26:47
    outer关键字可被省略 全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定...
  • MySQL 基础 常用 语句增删改查

    千次阅读 2020-08-24 20:00:24
    MySQL 基础原理及常用语句 常见的关系型数据库 IBM的DB2; 甲骨文的Oracle、MySQL; 微软的SQL和Access; Sybase的Sybase; MySQL 常用存储引擎 InnoDB存储引擎 MyISAM存储引擎 MEMORY存储引擎 数值类型 下面...
  • Mysql基本操作之SQL语句增删改查mysql–e 后面我们接SQL语句,直接终端运行,写sql 相关shell可以用到。1、数据库操作:创建aa数据库:mysql>createdatabase aa;#如有殊字符做库名可用``反引号括起来。mysql>...
  • 那这就需要用到我们sql语句了。我们需要用这些语法去操作数据库。Sql,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据和查询,更新还有管理数据库,它分为三类:1、 DDL数据定义语言 ...
  • MySQL 详细单表增删改查语句

    千次阅读 2020-04-28 19:59:26
    (MySQL) 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。满足第一范式是关系模式...
  • 在以前学习和使用WinForm、ASP.NET WebForm、三层架构的时候,对于数据访问的实现,无论是什么逻辑,简单还是复杂,无论是执行SQL语句还是调用存储过程都要用到ADO.NET技术,通过封装好的SQLhelper类传入SQL语句和Sql...
  • SQL语句简单增删改查

    2021-03-30 16:59:42
    使用 SQL 语言编写出来的代码,叫做 SQL 语句 SQL 语言只能在关系型数据库中使用(例如 MySQL、Oracle、SQL Server)。非关系型数据库(例如 Mongodb)不支持 SQL 语言 SQL 能做什么? 从数据库中查询数据 向...
  • MySQL 与 Oracle 的增删改查MySQL —— 增删改查MySQL — 增MySQL — 删MySQL — 改MySQL — 查Oracle —— 增删改查Oracle — 增Oracle — 删Oracle — 改Oracle — 查MySQL —— 增删改查MySQL — 增1 新增数据库...
  • mysql数据库的增删改查有以下的几种的情况,1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER SHOW2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据...
  • java简单的sql语句--增删改查(CRUD)

    千次阅读 2019-11-18 13:31:05
    // 如果是数组或Collection集合,框架(SSM)会将数组或Collection集合存储到Map中,以"array"和"list"作为key
  • 存储过程之七—存储过程增删改查

    千次阅读 2017-10-11 10:51:46
    对于以下存储过程,表结构如下: -- ---------------------------- -- Table structure for person -- ---------------------------- DROP TABLE IF EXISTS `person`; CREATE TABLE `person` ( `id` int(11) NOT ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,649
精华内容 37,059
关键字:

存储过程的增删改查语句