当前位置:文档之家› MYSQL-单表CRUD操作

MYSQL-单表CRUD操作

MYSQL-单表CRUD操作
MYSQL-单表CRUD操作

单表的CRUD操作

(

Create insert

Read select

Update update

Delete delete

)

======================================================================= Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

//启动mysql服务

C:\Documents and Settings\ctd>net start mysql

MySQL 服务已经启动成功。

//停止mysql服务

C:\Documents and Settings\ctd>net stop mysql

MySQL 服务正在停止.

MySQL 服务已成功停止。

C:\Documents and Settings\ctd>net start mysql

MySQL 服务已经启动成功。

//使用root用户登录系统

C:\Documents and Settings\ctd>mysql -uroot -proot

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.0.45-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

//创建数据库,mydb为数据库表,一张数据表必须存放在某个数据库中。

mysql> create database mydb;

Query OK, 1 row affected (0.02 sec)

//使用且打开数据库,才能使后头的建表操作能把表建立在这个数据库中。mysql> use mydb;

Database changed

//查看数据库中有哪些表

mysql> show tables;

Empty set (0.00 sec) //没有任何表

//建表操作

mysql> create table student(

-> stu_no int primary key,

-> stu_name varchar(20) not null,

-> stu_age int check(stu_age>=16 and stu_age<=20), -> stu_mark decimal(5,2) default 0.0

-> );

Query OK, 0 rows affected (0.08 sec)

//查看表结构 (desc:describe)

mysql> desc student;

+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | stu_no | int(11) | NO | PRI | | | | stu_name | varchar(20) | NO | | | | | stu_age | int(11) | YES | | NULL | | | stu_mark | decimal(5,2) | YES | | 0.00 | | +----------+--------------+------+-----+---------+-------+ 4 rows in set (0.02 sec)

//插入表数据,全字段天然顺序插入,则无需指定字段名

mysql> insert into student values(1,'mary',16,95.5); Query OK, 1 row affected (0.05 sec)

mysql> insert into student values(2,'david',16,85.5); Query OK, 1 row affected (0.02 sec)

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

+--------+----------+---------+----------+

2 rows in set (0.00 sec)

//主键不能雷同

mysql> insert into student values(1,'mary',16,95.5);

ERROR 1062 (23000): Duplicate entry '1' for key 1

mysql> insert into student values(2,123456,16,95.5);

ERROR 1062 (23000): Duplicate entry '2' for key 1

mysql> select * from student;

+--------+---------------------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+---------------------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

+--------+---------------------+---------+----------+

4 rows in set (0.00 sec)

//自定义字段顺序插入,必须指定字段名

mysql> insert into student(stu_name,stu_age,stu_no,stu_mark)

-> values('mike',14,6,60.5);

Query OK, 1 row affected (0.01 sec)

//部分字段插入,那么拥有默认值约束的字段将启动默认值

mysql> insert into student(stu_name,stu_age,stu_no)

-> values('kate',15,7);

Query OK, 1 row affected (0.01 sec)

mysql> select * from student;

+--------+---------------------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+---------------------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | david | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

| 7 | kate | 15 | 0.00 |

+--------+---------------------+---------+----------+

7 rows in set (0.00 sec)

============================================ QUERY OPERATION ========================================

//全行列查询,没有任何限制,各字段按照天然顺序输出

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | david | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

| 7 | kate | 15 | 0.00 |

+--------+----------+---------+----------+

5 rows in set (0.00 sec)

//列约束输出,仅仅2列别允许输出

mysql> select stu_no,stu_name from student;

+--------+----------+

| stu_no | stu_name |

+--------+----------+

| 1 | mary |

| 2 | david |

| 5 | david |

| 6 | mike |

| 7 | kate |

+--------+----------+

5 rows in set (0.00 sec)

//自定义列输出顺序,必须明确指定字段名

mysql> select stu_no,stu_age,stu_name,stu_mark from student; +--------+---------+----------+----------+

| stu_no | stu_age | stu_name | stu_mark |

+--------+---------+----------+----------+

| 1 | 16 | mary | 95.50 |

| 2 | 16 | david | 85.50 |

| 5 | 11 | david | 85.50 |

| 6 | 14 | mike | 60.50 |

| 7 | 15 | kate | 0.00 |

+--------+---------+----------+----------+

5 rows in set (0.00 sec)

//列不限制,行约束输出

mysql> select * from student where stu_name='kate';

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 7 | kate | 15 | 0.00 |

+--------+----------+---------+----------+

1 row in set (0.00 sec)

mysql> select * from student where stu_mark>60;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | david | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

+--------+----------+---------+----------+

4 rows in set (0.00 sec)

//复合条件行约束输出

mysql> select * from student where stu_mark>80 and stu_age=16;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

+--------+----------+---------+----------+

2 rows in set (0.00 sec)

mysql> select * from student where stu_mark>80 or stu_age=14;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | david | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

+--------+----------+---------+----------+

4 rows in set (0.00 sec)

mysql> select * from student where not(stu_mark>80 or stu_age=14); +--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 7 | kate | 15 | 0.00 |

+--------+----------+---------+----------+

1 row in set (0.00 sec)

//复合条件行列均约束输出

mysql> select stu_name,stu_age from student where stu_mark>80 or stu_age=14; +----------+---------+

| stu_name | stu_age |

+----------+---------+

| mary | 16 |

| david | 16 |

| david | 11 |

| mike | 14 |

+----------+---------+

4 rows in set (0.00 sec)

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | david | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

| 7 | kate | 15 | 0.00 |

+--------+----------+---------+----------+

5 rows in set (0.00 sec)

//单字段修改(使用where限制为单行修改)

mysql> update student set stu_name='henry' where stu_no=5;

Query OK, 1 row affected (0.02 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | henry | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

| 7 | kate | 15 | 0.00 |

+--------+----------+---------+----------+

5 rows in set (0.00 sec)

//多字段修改

mysql> update student set stu_age=14,stu_mark=81.5 where stu_no=7;

Query OK, 1 row affected (0.03 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 85.50 |

| 5 | henry | 11 | 85.50 |

| 6 | mike | 14 | 60.50 |

| 7 | kate | 14 | 81.50 |

+--------+----------+---------+----------+

5 rows in set (0.00 sec)

//增量修改 (使用多行书写格式,更加容易进行维护) mysql> update student

-> set stu_mark=stu_mark+2

-> where stu_mark<90;

Query OK, 4 rows affected (0.01 sec)

Rows matched: 4 Changed: 4 Warnings: 0

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 87.50 |

| 5 | henry | 11 | 87.50 |

| 6 | mike | 14 | 62.50 |

| 7 | kate | 14 | 83.50 |

+--------+----------+---------+----------+

5 rows in set (0.00 sec)

mysql> select stu_no,stu_name

-> from student

-> where stu_no>3;

+--------+----------+

| stu_no | stu_name |

+--------+----------+

| 5 | henry |

| 6 | mike |

| 7 | kate |

+--------+----------+

3 rows in set (0.00 sec)

================================================ DELETE OPERATION =======================

//条件约束删除

mysql> delete from student where stu_no=7;

Query OK, 1 row affected (0.03 sec)

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 16 | 95.50 |

| 2 | david | 16 | 87.50 |

| 5 | henry | 11 | 87.50 |

| 6 | mike | 14 | 62.50 |

+--------+----------+---------+----------+

4 rows in set (0.00 sec)

mysql> delete from student

-> where stu_mark>=80;

Query OK, 3 rows affected (0.02 sec)

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 6 | mike | 14 | 62.50 |

+--------+----------+---------+----------+

1 row in set (0.00 sec)

============================================ 五大聚合函数============================================

mysql> insert into student values(1,'mary',12,67.5);

Query OK, 1 row affected (0.03 sec)

mysql> insert into student values(2,'henry',13,73.5);

Query OK, 1 row affected (0.01 sec)

mysql> insert into student values(3,'tom',11,78.5);

Query OK, 1 row affected (0.02 sec)

mysql> select * from student;

+--------+----------+---------+----------+

| stu_no | stu_name | stu_age | stu_mark |

+--------+----------+---------+----------+

| 1 | mary | 12 | 67.50 |

| 2 | henry | 13 | 73.50 |

| 3 | tom | 11 | 78.50 |

| 6 | mike | 14 | 62.50 |

+--------+----------+---------+----------+

4 rows in set (0.00 sec)

//count() 求记录总数

mysql> select count(*) from student;

+----------+

| count(*) |

+----------+

| 4 |

+----------+

1 row in set (0.00 sec)

// 使用as给字段设置别名

mysql> select count(*) as total from student;

+-------+

| total |

+-------+

| 4 |

+-------+s

1 row in set (0.00 sec)

// avg() 求平均值

mysql> select avg(stu_mark) from student;

+---------------+

| avg(stu_mark) |

+---------------+

| 70.500000 |

+---------------+

1 row in set (0.00 sec)

//max 最大值, min 最小值, sum 求该字段数字和mysql> select avg(stu_mark),max(stu_mark) from student; +---------------+---------------+

| avg(stu_mark) | max(stu_mark) |

+---------------+---------------+

| 70.500000 | 78.50 |

+---------------+---------------+

1 row in set (0.00 sec)

mysql> select avg(stu_mark),max(stu_mark),min(stu_mark) from student;

+---------------+---------------+---------------+

| avg(stu_mark) | max(stu_mark) | min(stu_mark) |

+---------------+---------------+---------------+

| 70.500000 | 78.50 | 62.50 |

+---------------+---------------+---------------+

1 row in set (0.00 sec)

mysql> select avg(stu_mark),max(stu_mark),min(stu_mark),sum(stu_mark)from studen t;

+---------------+---------------+---------------+---------------+

| avg(stu_mark) | max(stu_mark) | min(stu_mark) | sum(stu_mark) |

+---------------+---------------+---------------+---------------+

| 70.500000 | 78.50 | 62.50 | 282.00 |

+---------------+---------------+---------------+---------------+

1 row in set (0.00 sec)

mysql> select avg(stu_mark),max(stu_mark),min(stu_mark),sum(stu_mark)/count(*) f rom student;

+---------------+---------------+---------------+------------------------+

| avg(stu_mark) | max(stu_mark) | min(stu_mark) | sum(stu_mark)/count(*) |

+---------------+---------------+---------------+------------------------+

| 70.500000 | 78.50 | 62.50 | 70.500000 |

+---------------+---------------+---------------+------------------------+

1 row in set (0.00 sec)

SQL Server 2008 数据库案例教程课后习题答案

《SQL Server 2008数据库案例教程》练习题及模拟试卷答案 第1章 一、判断题 1. 数据库技术是是计算机数据处理与信息管理系统的核心。(√) 2. 数据是用于描述现实世界中具体事物或抽象概念,可存储的数字符号。(×) 3. 数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。(√) 4. 数据库管理系统是一个按数据结构来存储和管理数据的服务器管理系统。(×) 5. 关系数据库,是建立在关系模型基础上的数据库。(√) 二、单选题 1. 数据(Data)是一些可存储并具有明确意义的(A) A. 符号 B.图形 C.文字 D.数字 2. 人工阶段计算机用于数值计算,没有操作系统及管理数据的软件。这一阶段的年代是(C) A. 19世纪80年代 B. 20世纪20年代 C.20世纪50年代 D. 20世纪80年代 3. 在网页中常用的图像格式是(D) A..bmp和.jpg B..gif和.bmp C. .png和.bmp D. .gif和.jpg 4.数据库系统的重要特征是什么?(D) A. 数据的独立性和动态性 B.数据的静态性和独立性 C.数据的动态性和共享性 D.数据的独立性和共享性 三、多选题 1.与数据库技术密切相关的基本概念有(ABCD) A. 数据 B. 数据库 C. 数据库管理系统 D. 数据库系统 2.数据库可分为哪几种类型?(ABC) A. 关系型数据库 B. 网状数据库 C. 层次数据库 D.树形数据库 3. DBMS提供数据操作语言DML,为用户提供了哪些操作?(ABCD) A.数据的追加B.数据的删除C.数据的更新D.数据的查询 4.DBMS要分类组织、存储和管理各种数据,包括哪些内容?(ABC) A. 数据字典 B. 用户数据 C. 存取路径 D.服务器 5. 目前,DBMS常见品牌有哪些公司?(ABC) A.微软公司的SQL Server B.IBM公司的DB2 C.甲骨文公司的ORACLE D.索尼公司的MySQL 四、填空题 1.数据库(管理)技术经历了人工管理阶段和文件管理阶段。 2.文件系统不提供对任意部分数据的(快速)访问 3.关系数据库,是建立在关系(模型)基础上的数据库。 4.实体-联系模型(简称E-R模型)是由P.P.Chen于(1976)年首先提出的。

MYSQL数据库基本操作命令

MYSQL数据库基本操作命令 用户名和密码:123456 创建一个名称为mydb1的数据库。 create database mydb1; 查看所有数据库 show databases; 创建一个使用utf-8字符集的mydb2数据库。 create database mydb2 character set utf8; 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。 create database mydb3 character set utf8 collate utf8_general_ci; 显示库的创建信息 show create database mydb3; 删除前面创建的mydb1数据库 drop database mydb1; 查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312; alter database mydb2 character set gb2312; show create database mydb2; 备份库 1、准备库的数据 create database mydb1; use mydb1; create table test ( id int ); insert into test(id) values(1); select * from test; 2、删除库:drop database mydb1; 3、 4.1 创建库:create database mydb1; 4.2 \. test.sql (通过执行脚本文件实现) 5、

创建一个员工表 use mydb1; 进入库 create table employee ( id int, name varchar(20), gender varchar(4), birthday date, entry_date date, job varchar(40), salary double, resume text )character set utf8 collate utf8_general_ci; 查看库中所有表 show tables; 查看表的创建细节 show create table employee; 查看表的结构 desc employee; 在上面员工表的基本上增加一个image列。 alter table employee add image blob; 修改job列,使其长度为60。 alter table employee modify job varchar(60); 删除sex列。 alter table employee drop gender; 表名改为user。 rename table employee to user; 修改表的字符集 alter table user character set gb2312; show create table user; 列名name修改为username alter table user change column name username varchar(20); 使用insert语句向表中插入一个员工的信息。 insert into employee(id,username,birthday,entry_date,job,salary,resume)

sql数据库示例,适合初学者

一、数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。(文件系统) 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 二、数据库的安装与配置 * 安装 * 参照图解 * 一路下一步 * 配置 * 参照图解 * 到选择字符集时停 登录Mysql: mysql -u root -p abc * 卸载 1.停止mysql服务net stop mysql 启动mysql服务net start mysql 2.卸载mysql 3.找到mysql 安装目录下的my.ini datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 修改密码 运行cmd * 安装成功了打开cmd --> mysql -uroot -p你的密码 * 修改mysql root用户密码 1) 停止mysql服务运行输入services.msc 停止mysql服务 或者cmd --> net stop mysql 2) 在cmd下输入mysqld--skip-grant-tables 启动服务器光标不动(不要关闭该窗口) 3) 新打开cmd 输入mysql -u root -p 不需要密码

mysql的多表操作查询

超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 创建这两个表SQL语句如下: CREATE TABLE a aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , aNum char( 20 )

) CREATE TABLE b( bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , bName char( 20 ) ) INSERT INTO a VALUES ( 1, ‘a20050111′ ) , ( 2, ‘a20050112′ ) , ( 3, ‘a20050113′ ), ( 4, ‘a20050114′ ) , ( 5, ‘a20050115′ ) ; INSERT INTO b VALUES ( 1, ‘ 2006032401′ ) , ( 2, ’2006032402′ ) , ( 3,’2006032403′ ) , ( 4, ’2006032404′ ) , ( 8, ’2006032408′ ) ; 实验如下: 1.left join(左联接) sql语句如下: SELECT * FROM a

SQL server数据库设计实例

数据库原理与应用 课程设计A报告 姓名:袁一帆学号:20121480 学院(系):管理学院专业:信息管理与信息系统

班级:12级信管1 班

襄阳迈博信息科技有限公司企业考勤管理系统 一、系统目标设计 1系统开发的总体任务是实现企业员工考勤管理的系统化、规范化、和自动化。 2能够和人事管理系统、工资管理系统相结合,真正实现企业高效、科学、现代化的员工管理。 二、开发实际思想 1尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。 2员工考勤管理系统能够和考勤机相连接,从而完成自动、高效、科学的考勤信息输入。 3系统采用模块化程序设计方法,既便与系统功能的各种组合和修该,又便于未参与开发的技术维护人员补充、维护。 系统应具备数据库维护功能,即使根据用户需求进行数据的添加、删除、修改、被分等操作。 系统需求分析 1 考勤管理涉及企业人事管理的多个方面,如员工职务升迁、工资发放、奖金发放、员工医疗保险发放等等。本利自重的考勤管理系统需要完成功能主要有以下几点。 2 员工考勤信息处理。该莫完成员工考勤情况的输入、修改等操作。如果企业内有考勤机,可以将它的输出处理后,形成考勤管理系统考勤模块的

输入。 3 企业缺勤类型的设定。 4 企业考勤统计。该模块可对某个员工进行考勤情况的统计,生成统计报表。 5 缺勤时间,缺勤类型对工资的影响 6 缺勤时间,缺勤类型对升职的影响 数据字典 数据项 表1 名称员工编号 说明每个员工拥有唯一的编号 类型字符型 长度 4 有关数据存储员工基本信息存储 表2 名称员工姓名

Mysql基本操作

1.Mysql基本操作 1.1修改管理员的密码 1)Mysql刚安装好后无密码,使用”mysqladmin–uroot password 密码”修改管理员密 码 2)以管理员身份登录数据库,使用”mysql–u root” 3)原来有密码,现在要修改,使用”mysqladmin–uroot–p旧密码 password 新密码” 1.2用户的创建、删除、授权与撤权 Mysql安装好后,默认有两个数据库(mysql和test),而且除了root用户外,其他用户只能访问test数据库。 Mysql中设置了5个授权表(user/db/host/tables_priv/columnts_priv)。 1)创建新用户,方法如下: A.mysql–u root –p #以管理员身份登录 B.insert into https://www.doczj.com/doc/c516355617.html,er(host,user,password) values(‘%’,’guest’,password(‘guest’));#创建一个用户名为guest的用 户 C.flush privileges;#重载授权表 2)删除用户,方法如下: A.mysql–u root –p #以管理员身份登录 B.delete from https://www.doczj.com/doc/c516355617.html,er where user=’guest’; C.flush privileges; 3)更改用户密码,方法如下: A.mysql–u root –p #以管理员身份登录 B.update https://www.doczj.com/doc/c516355617.html,er set password=password(‘123’) where user=’guest’; C.flush privileges; 4)用户授权,方法如下: 格式:GRANT 权限列表[(字段列表)] ON 数据库名称.表名 TO 用户名@域名或IP地址[IDENTIFIED BY ‘密码值’] [WITH GRANT OPTION]; 常用权限如下: 全局管理权限: FILE: 在MySQL服务器上读写文件。 PROCESS: 显示或杀死属于其它用户的服务线程。 RELOAD: 重载访问控制表,刷新日志等。 SHUTDOWN: 关闭MySQL服务。 数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。 Create: 建立新的数据库或数据表。

一个完整的数据库示例--说明

一、表的结构及完整性约束 新建一个数据库jxsk,包括S、C、SC、T、TC五个表,结构如下:C表: S表: SC表: T表:

TC表: 二、安全性控制及视图机制 1、三类角色:depart、teacher、student depart的权限: teacher的权限:

student的权限: 2、有2个院系用户:d_jsj,d_xx,同属于depart角色。

有1个教师用户:t ,属于teacher 角色。

有一个学生用户:s,属于student角色。 3、创建计算机系教师视图t_view_jsj、计算机系学生视图s_view_jsj,并授予d_jsj 用户在这两个视图上的select、delete、update、insert权限。 计算机系教师视图t_view_jsj: create view t_view_jsj as select tno,tn,sex,age,prof,sal,comm,dept from t where dept='计算机' with check option

授予d_jsj用户在计算机系教师视图t_view_jsj 上的select、delete、update、insert 权限: grant select,update,delete,insert on t_view_jsj to d_jsj 计算机系学生视图t_view_jsj: create view s_view_jsj as select sno,sn,sex,age,dept,resume,native from s where dept='计算机' with check option 授予d_jsj用户在计算机系学生视图s_view_jsj 上的select、delete、update、insert 权限: grant select,update,delete,insert on s_view_jsj to d_jsj …… 4、创建一个视图,显示学号,姓名,院系,课程名,成绩。 create view score_view(学号,姓名,院系,课程名,成绩) as select s.sno,sn,dept,cn,score from s,sc,c where s.sno=sc.sno and https://www.doczj.com/doc/c516355617.html,o=https://www.doczj.com/doc/c516355617.html,o 三、完整性控制--触发器、规则 1、要求当删除C表中某课程信息时,同时删除SC和TC中与此课程相关的记录。create trigger c_delete_trigger on c after delete as delete from sc where cno in (select cno from deleted) delete from tc where cno in (select cno from deleted) go

jsp-mysql总结表的操作合集

jsp+mysql进行简单的增删改查总结 第一步创建一个新的包用于封装学生属性 在新包里面创建新的类存入学生属性 publicclass shuxing { String name; int age; String sex; int id; 右击鼠标选择soure-gennerategettersand setters来封装数据 第二步创建另一个新的包用于主体serlvet的操作 Servlet里面操作: 1.因为doget比dopost拥有更强的保密性,所以把dopost的语句也沿用doget的形式 doPost(request,response);注意删除的时候是不是把}也删除了,会报错。2.将设置请求的编码格式为’UTF-8’防止后面输入学生信息的时候出现乱码,之所以放在前面是怕后面写的话就不可以public公用了。 3.读取后面表中按钮的名称,用一个新的名字来获取随后跳转需要调用的语句 String opeationName = request.getParameter("openration");//取出条件的OPENRATION,看执行哪一种语句 4.查看取出的名称是否为空。 opeationName = opeationName==null?"":opeationName.trim();//取出来看下是不是空,不是空去掉空格 5.用if()else()语句来写调用的程序用前面取出的名字 一:删除方法:opeationName.equals("delete") (1).提取要删除的ID String id=request.getParameter("id"); (2).查看是否为空,为空输出“”if(id==null) { id=""; } (3).try{}catch()语句用于报错 try{ int result = doDelete(id);//调用到doDelete的方法 Listqw = new ArrayList();//创建新的集合用于存放数据 qw = getData();//获取数据 request.setAttribute("qw" ,qw);//缓存范围中设置具体的属性:第一个参数是属性名,字符串类型的数据。,也是以后获取的依据条件,第二个是插入的数据,支持对象属性。 (4)跳转进入最开始的jsp页面即查询语句的JSP界面 二.增加opeationName.equals("add") (1).增加不需要提取什么属性。直接获取在JSP中提交的数据即可,但是要观察是否为空String newname=request.getParameter("name");

MYSQL数据库基本操作详细教程

MYSQL数据库 学习目标: ●掌握MYSQL基本知识 ●学习数据库管理和操作 ●掌握数据库设计方法 ●熟练运用SQL编程语言 基本概念 MYSQL数据库是关系型数据库。 关系型:使用一个关系,来表示实体信息和实体之间的联系。关系:就是二维表,有行有列的表格。 这两张表通过班级名称关联起来。 关系型数据库:就是由二维表及其之间的联系组成的数据组织。 同一个表中数据结构完全一致。 数据是由记录组成 记录是由字段组成。 SQL:结构化查询语言 专门用于处理关系型数据库编程语言。 PHP也是编程语言 变量,流程控制,函数

数据库服务器的结构 DBS = DBMS + DB 数据库系统= 数据库管理系统+ 数据库(数据) 命令行客户端

数据在服务器上是如何存储的? 操作服务器 通过服务管理来操作服务器 开始->运行-> 3306是MYSQL服务程序的默认端口号 可以用netstat –an命令查看服务是否启动

命令行命令控制服务器的启动和关闭 Net start mysql Net stop mysql 错误原因:没有权限 解决办法:用管理员方式启动命令行窗口 C/S, client / server客户端/服务器方式访问数据库命令行客户端工具

流程: 1.连接和认证,提供4个参数,分别是主机地址,端口号,用户名,密码 2.向MYSQL数据库服务器发送SQL 3.MYSQL服务器接收并执行SQL,并且把结果返回给客户端 4.客户端对结果进行显示 5.断开服务器连接。Exit, quit, \q 2,3,4这几步可以循环执行 知识: 非关系型数据库,NOSQL,not only sql 不仅仅是SQL 代表:redis, mongodb 数据存储有点象数组,key/value SQL语言 存储数据: 首先建立数据库 之后建立数据表(字段定义) 操作数据 数据有哪些操作 CURD CREATE UPDATE READ DELETE(DROP)

个人总结的mysql常用命令大全

第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下:mysql -u用户名-p用户密码 键入命令mysql -uroot -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql 的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 第四招:操作数据库 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。 1、显示数据库列表。 show databases; 缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。 2、显示库中的数据表: use mysql;

MySQL基础 学习 超级详细

一、MySQL概述 1、什么是数据库? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等? 答:他们均是一个软件,都有两个主要的功能: o a. 将数据保存到文件或内存 o b. 接收特定的命令,然后对文件进行 相应的操作 3、什么是SQL ? 答:MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包 含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。 二、MySQL安装 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 想要使用MySQL来存储并操作数据,则需要做几件事情: a. 安装MySQL服务端 b. 安装MySQL客户端 b. 【客户端】连接【服务端】 c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相 应操作(增删改查等) 下载 https://www.doczj.com/doc/c516355617.html,/downloads/mysql/

安装 windows: https://www.doczj.com/doc/c516355617.html,/article/f3ad7d0ffc061a09c3345bf0.html linux: yum install mysql-server mac: 一直点下一步 客户端连接 连接: 1、mysql管理人默认为root,没有设置密码则直接登录 mysql -h host -u root -p 不用输入密码按回车自动进入 2、如果想设置mysql密码 mysqladmin -u root password 123456 3、如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是: mysqladmin -u root -p password abcdef 退出: QUIT 或者 Control+D 三、数据库基础 分为两大部分: 1、数据库和表的创建; 2、数据库和表内容的操作 数据库操作-思路图

数据库应用系统实例

淮海工学院计算机工程学院实验报告书 课程名:数据库原理及应用 题目:实验七数据库应用系统实例 班级:D计算机081 学号: 姓名:

一、实验目的 开发学生学籍管理系统小型数据库应用系统数据库连接、数据操程作序编写,熟练使用Microsoft Visual Studio 2005开发平台。 二、实验内容和要求 1.后台为SQL server2000, 2.前台为面向对象编程语言(可选择) 3.完成数据库连接 4.完成对前面实验所建立的studb109学籍数据库中的数据通过应用系统界面进行更新和查询等操作。 三、实验步骤和实验结果 1.连接SQL Server的数据库访问编程实例。编写一个应用程序来连接数据库名为studb109的SQL Sever数据库,并根据连接结果输出一些信息。 (1).运行Microsoft V isual Studio 2005 (2).新建网站

(3).设计网站 using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; namespace web { public partial class_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){} protected void Button1_Click(object sender, EventArgs e) {try {SqlConnection coon = new SqlConnection(); coon .ConnectionString =" Server =localhost; uid = sa;pwd=; database=studb109"; coon .Open (); Label1 .Text ="连接成功"; } catch { Label1 .Text ="连接失败"; }}}}

mysql多表操作与练习笔记

mysql多表操作与练习 数据库备份与恢复 ◆数据库备份 ◆数据库恢复 多表操作 ◆多表设计 ◆外键介绍与创建 ◆多表查询介绍 ◆多表查询-内连接 ◆多表查询-外连接 ◆多表查询-子查询 SQL练习 【内容:数据库备份与恢复】 数据库备份 数据库的备份是指将数据库转换成对应的sql文件。数据库导出sql脚本的命令如下: ●mysqldump –u用户名–p密码数据库名>生成的脚本文件路径; 以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用数据库恢复 数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因为数据库备份只是备份了数据库内容,所以备份产生的sql文件中没有创建数据库的sql语句,在恢复数据库之前需要自己动手创建数据库。 ●在数据库外恢复 mysql -u root -p 数据库名< 文件路径 注意:要求数据库必须先创建出来. ●.在数据库内恢复 source SQL脚本路径:使用这种方式恢复数据,首先要登录数据库 【重点总结】 备份 Mysqldump –u root –p abc mydb>c:/mydb.sql 恢复 1.mysql –u root –p mydb

【内容:多表操作】 多表设计 当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类、数据库中的表。今天我们需要了解的概念模型包括以下两个: ●对象模型:针对java中的实体类,例如我们之前学习的domain层中的User类等; ●关系模型:对应数据库中的表。 在java中有以下三个关系描述: ●is a:例如猫是动物,表示继承关系; ●has a:例如人有两只手,表示的是类与成员的关系; ●use a:表示类与方法之间的关系; 我们今天主要关注的是第二个关系:类与成员的关系。这种关联关系可以分为如下三种: ●一对一关联:例如身份证与人就是一对一的关系,一个人只有一个身份证,一个身份证 号只属于一个人。 ●一对多关联:例如用户与订单,一个用户可以拥有多个订单,多个订单可以属于同一个 用户,这是一个很明显的一对多关联。 ●多对多关联:例如商品与订单,一个订单中可以包含多个商品,而一个商品也可以存在 于多个订单中,这就是一个多对多关联。 概念模型在java中对应这实体类,在实体类中使用成员变量完成关联关系,而且一般都是双向关联,以下是java中实体类与成员之间的关联关系,如下所示: 一对一关联 //身份证类一的一方 public class IDCard { private Person person; //身份证关联人类一对一 } //人类一的一方 public class Person { private IDCard idcard; //人类关联身份证类一对一 } 一对多关联 //用户一的一方 public class User { private List orders; //用户可以有多个订单,在用户中关联订单} //订单多的一方 public class Order { private User user; //多个订单可以属于一个用户,在订单中关联用户} 多对多关联 // 订单多的一方 public class Order { private List products; //订单中可以包含多个商品,订单关联商品

EC数据库操作实例

宿主变量定义: EXEC SQL BEGIN DECLARE SECTION; EXEC SQL END DECLARE SECTION; Selcet、临时表、宿主变量的引用(:): EXEC SQL select eviaa.sbno,eviaa.scdt,eviaa.skst,eviaa.acbl,eviaa.trdt,eviaa.stcd,eviaa.acno,g dsba.sbnm,gdsba.sbno from gdsba,eviaa where gdsba.sbno = eviaa.sbno and eviaa.sbno = :sbnoarray[i] order by scdt into TEMP tmp_gdsb a; 索引的创建(Based on 字段): EXEC SQL create index tmp_gdsba_idx1 on tmp_gdsba(scdt); 创建原则: 1.经常作为where条件的字段要创建索引。 2.重复值比较多的字段,创建索引的作用不大。例如,对于记录状态jiluzt这样的字段,它只有十多个有效的值,对应几十万的记录,在索引中有没有这个字段,意义不是很大。 3.要把重复值少的字段放在复合索引前面。对于sql语句,如果前面的条件就可以确定一条记录的话,就不必去比较后面的字段了。比如:表akhzh创建索引的时候,如果需要创建一个khzhlx和kehuzh的索引,就需要把kehuzh放在前面。这样才可以准确、快速的定位到要查找的记录。 4.索引最好不要创建太多,一般一个表不要超过8个。能合并的索引应该合并。索引其实是牺牲insert,delete的效率来提高select的效率,如果索引过多,表的insert和update是的速度将很慢。 5.索引的合并。不必要的、重复的索引应该删除,可以减少数据库占用的空间,提高数据库insert,update的效率。如果两个或者几个索引的前几个字段相同,并且除去相同的字段,后面的字段的重复值又很多,那么这几个索引就可以合并成字段少的那个索引。 游标 EXEC SQL select sATNU,sFOSQ,sTRDT,sSBNO,sSTCD from trlga where stIn.sATNU=sATNU and stIn.sTRDT=sTRDT order by sTRDT info tmp_trlga_7627

Mysql数据库的一些基本操作

Mysql数据库的一些基本操作 一、MySQL服务器的启动与关闭 1、启动MySQL服务器 开始-> 运行输入“cmd”,然后在命令提示符下输入“net start MySQL”指令。 2、连接MySQL服务器 输入指令:MySQL -uroot -h127.0.0.1 -p111(-h127.0.0.1看个人情况 输不输) 注:用户名为“root”,MySQL数据库服务器地址为“127.0.0.1”,密码为“111”,三者之间必须有空格。 3、关闭MySQL服务器 开始-> 运行输入“cmd”,然后在命令提示符下输入“net stop MySQL”指令。 二、操作MySQL数据库 1、创建数据库 create database 数据库名; 2、查看数据库 show databases; 3、选择指定数据库 use 数据库名; 4、删除数据库 drop database 数据库名; 注:自动删除MySQL安装目录中的“C:/AppServ/MySQL/data”文件夹。 三、操作MySQL数据表 1、创建表 create table 表名(column_name column_type not null,...)

创建数据表后,“C:\AppServ\MySQL\data\数据库名\”中自动创建对应表文件(“表名.frm”,“表名.MYD”,“表名.MYI”) 2、查看数据库中的表 show tables; 3、查看数据库中所有的表 show tables;(前提是使用use database 数据库;) 4、查看数据表结构 describe 表名; 5、修改数据表结构 alter table 表名 add [column] create_definition [first | after column_name] //添加新字段 add primary key (index_col_name,...)//添加主码名称 alter [column] col_name {set default literal |rop default}/ /修改字段名称 change [column] old_col_name create_definition//修改字段名及类型 modify [column] create_definition//修改字段类型 drop [column] col_name//删除字段 drop primary key//删除主码 rename [as] new_tablename//更改表名 eg:alter table Admin_Info drop A_Pwd, rename as Admin_Info2; 6、删除指定数据表 drop table 表名; 四、操作MySQL数据 1、添加表数据 语法1:insert into 表名values(值1,值2,...)(自增长的列应写null)语法2:insert into 表名(字段1,字段2,...)values (值1,值2,...)语法3:insert into 表名set 字段1=值1,字段2=值2,... 2、更新表数据 update 表名set 字段1=值1 where 查询条件 若无查询条件,表中所有数据行都会被修改。 3、删除表数据 delete from 表名where 查询条件

VB数据库操作实例

VB数据库操作实例 工具/原料 VB数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一,很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。 步骤/方法 1. 1 《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件Adodc链接数据库、数据显示控件MSHFlexGrid显示数据库中的记录。 在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了。 其中Adodc控件的ConnectionString属性值是:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=家庭书架.mdb;Persist Security Info=False",它设置链接了“家庭书架.mdb”这个Access数据库,RecordSourc属性值是:"select 图书登记表.ID,图书登记表.名称,图书登记表.

书号,图书登记表.作者,图书登记表.出版社,图书登记表.出借状态,出借记录.借书人,出借记录.电话,出借记录.地址,图书登记表.备注,图书登记表.出借记录from 图书登记表,出借记录where 图书登记表.ID=出借记录.zhuID ORDER BY 图书登记表.ID",因为在“家庭书架.mdb”数据库中包含"图书登记表"和"出借记录"二个数据表,这是多表链接的典型的SQL语句。Adodc 的这二个属性值在VB的属性窗口进行编辑,你可以将上述属性值直接输入到相应的属性中,设置Visible的值为False,目的是在运行中不显示这个控件,其他属性默认值即可。 MSHFlexGrid控件的名称我们修改为MS1,它的属性设置稍稍比较麻烦:首先将它的DataSource属性在属性窗口设置为"Adodc1"; 然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为3,修改列为11,修改固定行为0,修改固定列为0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。 另外在属性窗口设置MSHFlexGrid控件的BackColorBkg属性为&H00FFE0E0&,这个属性是控件底色的设置,然后设置BackColorFixed属性为&H00C0FFFF&,这个属性是控件数据显示标题的底色。其他默认值即可。 最后放置三个按钮,一个标签,三个Frame控件,在Frame1、Frame2、Frame3控件中分别放置9个标签(数组),8个文本框,一个下拉选择框,一个按钮,在Frame2、Frame3控件中分别放置一个标签,设置这个标签的Visible值为False,其他设置参考下图:设置和调整控件如上图后,设置数据库,在

mysql启动及常用命令

数据库 一、增,删,改,查 数据库的编程: 1.数据库编程概述 2.c常用的数据库编程方法 ①c中使用专门的库函数,在函数调用中使用SQL语句注意:linux 常用的数据库:MySqL 是开源的免费的二.mysql的使用 1.手动 2.编程 启动/etc/rc.d/init.d/mysqld stat 查看:/etc/rc.d/init.d/mysqld status 进入mysql mysql quit 退出

常用的命令: 资料:MYSQL常用命令 1.desc:查看表结构 2.show dababase();查看所在数据库的位置: 3.显示库中的数据表: ◆use mysql;打开库 ◆show tables; 4.显示数据表的结构:describe 表名; 5.建库:create databases 库名; 6.删除库:drop database 库名; 7.删除表:drop table 表名; 8.将表中的记录清空:delete from 表名; 9.显示表中的记录:select *from 表名; 1.导出整个数据库 mysqldump -u 用户名-p --default-character-set=latin1 数据库名> 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名-p 数据库名表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql -d 没有数据–add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 A:常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql B:使用mysqldump命令 mysqldump -u username -p dbname < filename.sql C:使用mysql命令 mysql -u username -p -D dbname < filename.sql 一、启动与退出 1、进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可。此时的提示符是:mysql> 2、退出MySQL:quit或exit 二、库操作 1、、创建数据库

相关主题
文本预览
相关文档 最新文档