MYSQL和SQL简单数据库语句

搜到的MYSQL简单样例:

http://blog.csdn.net/andy_yf/article/details/7487519

  


Mysql

  CREATE DATABASE  IF NOT EXISTS database20152
    CHARACTER  SET UTF8;
    
    
use  database20152; #定位接下来要操作的数据库
CREATE TABLE IF NOT EXISTS 管理员表
(
  管理员编号 INT NOT NULL auto_increment primary key,
  密码 varchar(8)NOT NULL
); 



CREATE TABLE IF NOT EXISTS 用户表
(
  用户编号 int NOT NULL auto_increment primary key,
  用户名 varchar(12) NOT NULL,
  密码 varchar(8)NOT NULL,
  高校 varchar(20),
  专业 varchar(20),
  出生日期 datetime, 
  联系电话 varchar(11),
  电子邮箱 varchar(20),
  备注 varchar(30),
  签名 varchar(30) 
);
#MYSQL貌似是要分号结尾分段
#show create database database20152;
#show create table 用户表;


create table  IF NOT EXISTS 驾校基本信息表
(
  驾校编号 int NOT NULL auto_increment primary key,
  名称 varchar(12) not null, 
  建立日期 datetime,
  地点 varchar(20),
  招生范围 varchar(30),
  科目考场 varchar(30),
  教练人数 int,
  价格 varchar(20),
  优惠 varchar(30),
  咨询电话 varchar(11), 
  口碑 varchar(30)
);



#drop procedure if exists 注册用户名验证 
#存储过程
DELIMITER  //
create procedure   注册用户名验证 
(YHMing varchar(12))
begin  
select COUNT(*) from 用户表 where 用户名=YHMing;
end //
DELIMITER ;


#drop procedure  注册用户名验证  ;
#drop table 管理员表;
#drop table 用户表;
#drop table 驾校基本信息表;


use database20152; 
#select host,user,password from user
create user sqluser1 IDENTIFIED by 'sqltest123';#搜到的说mysql没有角色只有用户alter
#identified by 将纯文本密码加密作为散列值存储
grant insert,update,select on 用户表 to sqluser1;
grant execute on procedure 注册用户名验证 to   sqluser1;


#尝试多次root读取增加存储过程正常,而用户sqluser1读正常,存储过程异常
#下面两句用于处理用户sqluser1访问存储过程权限
#否则error:execute command denied to user 'sqluser1'@'%' for routine 'database20152.注册用户名验证'
GRANT ALL PRIVILEGES ON *.* TO sqluser1 ;
FLUSH PRIVILEGES;


#下面两组存档未用
#grant select on mysql.proc to sqluser1;
#flush privileges;
#revoke select on mysql.proc from sqluser1;
#flush privileges;



 SQL

create database database20152
on
(
name=database20152_data,
filename='e:\DATA_SQL\database20152_data.mdf',--数据存放位置
size=4,
maxsize=10,
filegrowth=10%
)
log on
(
  name=database20152_log,
  filename='e:\DATA_SQL\database20152_log.ldf',--日志存放位置
  size=1,
  maxsize=6,
  filegrowth=1
) 
use database20152
create table 管理员表
(
  管理员编号 int identity NOT NULL,
  密码 varchar(8)not null,
  primary key (管理员编号)
)
--use database20152
--drop  table 管理员表
create table 用户表
(
  用户编号 int  identity NOT NULL primary key,
  用户名 varchar(12) not null,
  密码 varchar(8)not null,
  高校 varchar(20),
  专业 varchar(20),
  出生日期 datetime,
  年龄 int,
  联系电话 varchar(11),
  电子邮箱 varchar(20),
  备注 varchar(30),
  签名 varchar(30) 
)
create table 驾校基本信息表
(
  驾校编号 int  identity NOT NULL primary key,
  名称 varchar(12) not null, 
  建立日期 datetime,
  地点 varchar(20),
  招生范围 varchar(30),
  科目考场 varchar(30),
  教练人数 int,
  价格 varchar(20),
  优惠 varchar(30),
  咨询电话 varchar(11), 
  口碑 varchar(30), 
)
--或者下面增加主键
--alter table 管理员表 
--add constraint uq_管理员编号 unique(管理员编号)
--alter table 用户表 
--add constraint uq_用户编号 unique(用户编号)
--alter table 驾校基本信息表 
--add constraint uq_驾校编号 unique(驾校编号)

--sql提示这个是批处理仅有的语句,应该就是单独执行,但是执行前要先定位在要操作的数据库中
--use database20152  --定位单独执行;
create procedure 注册用户名验证  
@YHMing varchar(12)
as
begin 
if @YHMing is null return   
select COUNT(*)from 用户表 where 用户名=@YHMing
end

--测试存储过程
--use database20152
--declare @YHMing varchar(12)
--set @YHMing='1234'
--exec 注册用户名验证
--@YHMing

--创建用来登入sql的用户
create login sqluser一 with password='sqltest123'



--赋予sqluser一在数据库database20152中的身份testuser
use database20152
create user testuser for login sqluser一

use database20152 
grant insert,update,select on 用户表  to testuser  
grant exec on 注册用户名验证 to   testuser





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值