数据库的基本操作

数据库的基本操作一.登陆数据库MySQL-uroot-p启动数据库:netstratmysql关闭数据库:netstopmysql创建数据库:createDATABASE数据库名;指定字符集与校对规则:createDATABASE数据库名dffaultcharacterset字符集名

大家好,欢迎来到IT知识分享网。数据库的基本操作

一.

登陆数据库MySQL -u root -p

启动数据库:net strat mysql
关闭数据库:net stop mysql
创建数据库:create DATABASE 数据库名;
指定字符集与校对规则:
create DATABASE 数据库名
dffault character set 字符集名
collate 校对规则名;
修改数据库(一般为修改字符集与校对规则):
ALTER DATABASE 数据库名
dffault character set 新字符集名
collate 新校对规则名;
删除数据库:drop DATABASE 数据库名;
查看数据库:SHOW DATABASES
选择数据库 :use 数据库名
创建表:create TABLE 表名(id int(10))
创建表并输入内容:
CREATE TABLE 表名(
name varchar(20) not null,
gender varchar(5),
age int,
password varchar(32)
);
删除表:drop TABLE 表名;
修改表名:alter table 旧表名 rename 新表名;(ALTER改变的意思)
查看表的内容:desc 表名;
修改表字段(列名):ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;
修改表中的字段数据类型:ALTER TABLE 表名 MODIFY 字段名 新数据类型 ;(modify修改)
在表中添加一列:alter table 表名 add 字段名 字段数据类型 after 已存在字段名;
改变表列的位置:alter table 表名 modify 字段名 字段数据类型 after 已存在字段名;
删除表中列:alter table 表名 drop 字段名;
给表中列输入数据:insert into 表名(列名,列名……) value(内容,内容……)
主键:primary key(字段名)/primary key
替代键:unique(列名)
添加主键/替代键:ALTER TABLE 表名
add primapy key 索引方式(列名/字段名)
add unique 索引方式(列名);

删除主键/替代键:ALTER TABLE 表名

drop primapy key 索引方式
drop unique 索引方式;

 

改表中数据

update   表

set  列= 新内容

where 指定列

 删除;delete from 表名 where 条件

二.

1.group by

用于数据分组,根据指定列进行分组

例.按照性别统计reader人数

SELECT sex ,COUNT(1) FROM reader GROUP BY sex

2.order by 用于排序(默认升序排序),追加desc 为降序排序(从大到小)

例.SELECT * FROM book ORDER BY price DESC

3.替换列中内容/增加列并添加内容

case    

when  条件1  then  结果1

when   条件2    then  结果2

else   结果n

end  as  新列名

4.子查询in

in( 一个定值是否在子查询中   )

比较子查询 all :外层值必须全部满足内层值才输出  例如: c>all(b)   c列中的值必须大于b的集合中的最大值,才能够输出

               any一个条件满足即可输出    例如:c>any(b)  c集合的值只要有一个大于b集合的值即可输出大于的值

 补:exists     (与in用法类似)

  • 如果查询的两个表大小相当,那么用 EXISTS 和 IN 差别不大
  • 如果两个表中一个较小,一个是大表,则子查询表大的用 EXISTS,子查询表小的用 IN
  • exists  返回值类型为bool 
  • exists左侧没有数组

 例如:查询借过数用户信息

SELECT *FROM reader WHERE EXISTS (SELECT rno FROM borrow WHERE reader.rno=borrow.rno AND rdate is NOT NULL)

 

5.聚合函数

count(1)/count(*)/count(列)查询列的行数(非null)

max()与min()最大值与最小值

sum()总数

avg()平均数

三.视图

1.创建视图

create (or replace ) view  as  select语句 (with check option )

注解:指定 or replace 语句可以替代已存在同名视图

         指定with check option创建视图必须满足查询语句where限制条件

2.查询视图

与表查询相同

3.插入数据

insert into  视图  values(内容1,内容2,内容3,……内容n)

4.修改数据

update  视图

set  列=‘新内容’ 

(where 限制条件)

5.删除数据(一行数据)

delete from 视图  where 指定条件

6.修改视图定义(对已有视图的定义进行修改)
alter  view 视图
as  select 语句
(with check option )
7.删除视图
drop view  视图;
 
四.存储过程
1.创建存储过程
create procedure  名称( in/out 变量   类型  )
begin
select语句

end;

例如:

(1)CREATE PROCEDURE pr_book (in name VARCHAR(10) )
BEGIN

SELECT * FROM book WHERE bname =name;

END;

(2)

delimiter $$
mysql> CREATE PROCEDURE wws(in jg1 VARCHAR(10) ,IN jg2 VARCHAR(10),OUT bj varchar(3))
-> BEGIN
-> DECLARE bb1 ,bb2 DECIMAL(10,2);
-> SELECT price INTO bb1 FROM book WHERE bname =jg1 ;
-> SELECT price INTO bb2 FROM book WHERE bname=jg2;
-> IF bb1>bb2 THEN SET bj= ‘大于’;
-> ELSE
-> SET bj =’小于’;
-> END if;
-> END $$

2.修改结束符号

格式:delimiter  ##

例如:delimiter  ##

CREATE PROCEDURE pr_book (in name VARCHAR(10) )
BEGIN

SELECT * FROM book WHERE bname =name;

END ##

delimiter ;

3.储存过程体

(1)declare

语法格式:declare  变量名 数据类型

(2)select—— into

语法格式:select 列名 into 变量名

4.显示存储过程

show  PROCEDURE status;(全部)

show create PROCEDURE 名称;(单个)

5.调用存储过程

call 名称 (参数,…..)

例如:(1)call pr_book(‘数据库编程’)

 (2) call wws(‘数据库编程’,’世界地图’,@bj)$$    //定义out 输出   , 在调用存储过程时要在名称前加@

 select @bj;

 

五.创建和调用存储函数

1.创建存储函数

语法格式:

create function 存储函数名 (参数 类型,……)

returns 类型      //声明函数返回值的数据类型

deterministic 

 begin

return( select 语句/结果);

 end;

例如:(存储过程+存储函数+if语句)

delimiter $$
create function cc(name varchar(10))
returns char(4)
DETERMINISTIC
BEGIN
declare jg decimal(10,2);  //一定要有,先放置select语句获取到的price
select price into jg from book where bname=name;
if jg >50
then return ‘yes’;
else return ‘no’;
END IF;
END $$

2.调用存储过程

格式:select 存储过程名 (参数,……);

例如:

SELECT cc(‘数据库编程’);

 

六.补充

1.decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。

“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。

2。存储过程与存储函数用到if语句时

存储过程then后面set输出结果,且结果要提前在create procedure  名称( in/out 变量   类型  )中out定义

存储函数return输出结果

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/34557.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信