数据库(增删改查、mysql建课程表)
Oracel 甲⾻⽂公司  SQLSever 微软公司  DB2  IBM公司    MySQL(sun公司,现在是甲⾻⽂)开源的
数据:客观事物的符号表⽰,包括数值型(1、2、3...)和多媒体(⾮数值)数据(语⾳、图⽚、视频等)。
数据库:长期存储在计算机内的有组织的、可共享的相关数据的集合。
数据库管理系统:维护管理数据集合的软件系统。
数据管理技术:对数据的收集、整理、组织、存储、维护、检索、传送等操作,基本⽬的就是从⼤量的,杂乱⽆章的,难以理解的数据中筛选出有意义的数据。数据库系统:数据库系统(DBS)通常是指带有数据库的计算机应⽤系统。包括数据库、相应的硬件、软件和各类⼈员。
数据库表(关系),字段,记录:
关系数据库:⼆维表存储数据。
字段:实体的属性;
记录:⼀条记录表⽰⼀个实体。
表 : ⼀个关系数据库就是由⼆维表和他们之间的关系组成. ⼆维表在数据库中就叫表.
字段(Field): 对应于属性的数据称为字段,也称为数据项。字段的命名往往和属性名相同。
如学⽣有学号、姓名、年龄、性别、系等字段。
记录(Record): 对应于每个实体的数据称为记录。
如⼀个学⽣(990001,张⽴,20,男,计算机)为⼀个记录。
1,表结构
2.主键
⼀个特殊的字段,在整个表中不能重复,不能为空.如学⽣表中学⽣编号字段都可设为主键.
3.组合键
学⽣表,课程表,成绩表(学⽣编号,课程编号)
openstack安装指南3.外键
⼀张表中包含另⼀张表的主键,这样的字段在本表中叫外键,它是联系另外表的纽带.
4.表关系
⼀对⼀联系(1:1)
实体集A中的⼀个实体⾄多与实体集B中的⼀个实体相对应,反之亦然。
如:班级与班长,观众与座位,病⼈与床位
⼀对多联系(1:n)
实体集A中的⼀个实体与实体集B中的多个实体相对应,⽽B中的⼀个实体⾄多与A中的⼀个实体相对应.
如:班级与学⽣、公司与职员、省与市
多对多(m:n)
实体集A中的⼀个实体与实体集B中的多个实体相对应,反之亦然.
如:教师与学⽣,学⽣与课程,⼯⼚与产品
MySQL命令:
show databases: 显⽰数据库;  use student:使⽤student数据库 ;  show  tables:显⽰表。
select * from student order by number desc(降序)/asc(升序)。如果是汉字字符串 升降序按汉字(词),第⼀个汉字⾸字母升降。
select * from student where number between 1002 and 1004;  查询1002⾄1004之间(包括1002和1004)。
insert into student (id,name,number) values (6,'张三',1001);    插⼊(添加)⼀个名为张三的学⽣属性。
update student set name = '李四' ,where name = '张三';  把张三改为李四。
delete from student where name = '李四';  把李四属性删除。
如需有条件地从表中选取数据,可将WHERE ⼦句添加到 SELECT 语句。
语法:
SELECT 列名称 FROM 表名称 WHERE 列运算符值
下⾯的运算符可在WHERE ⼦句中使⽤:
操作符描述
=    :等于
<> :不等于
>  :⼤于
<    “⼩于
>=: ⼤于等于
<= :⼩于等于
BETWEEN  :在某个范围内
LIKE  :搜索某种模式
注释:在某些版本的SQL 中,操作符 <>可以写为 !=。
AND 和 OR 运算符⽤于基于⼀个以上的条件对记录进⾏过滤。
AND 和 OR 运算符
AND 和 OR 可在 WHERE ⼦语句中把两个或多个条件结合起来。
如果第⼀个条件和第⼆个条件都成⽴,则 AND 运算符显⽰⼀条记录。
如果第⼀个条件和第⼆个条件中只要有⼀个成⽴,则 OR 运算符显⽰⼀条记录。
SELECT * FROM Persons WHERE FirstName=’Thomas’ AND LastName=’Carter’
SELECT * FROM Persons WHERE firstname=’Thomas’ OR lastname=’Carter’
SELECT * FROM Persons WHERE (FirstName=’Thomas’ OR FirstName=’William’) AND LastName=’Carter’
MySQL插⼊中⽂乱码解决:
create database student default charset gbk;  指定服务器默认编码集为GBK模式。
在mysql数据库表中插⼊中⽂汉字时,会出现乱码或者报错。解决办法如:
show variables like 'character%'; 显⽰查看当前数据库的相关编码集。
可以看到数据库的编码格式为utf8模式,编码不⼀致导致了乱码产⽣。⽽当前 CMD 客户端的编码格式⽆法修改,所以只能修改 connection、 client、results 的编码集来告知服务器端当前插⼊的数据采⽤ GBK 编码,⽽服务器的数据库虽然是采⽤ UTF-8 编码,但却可以识别通知服务器端的 GBK 编码数据并将其⾃动转换为 UTF-8 进⾏存储。可以通过set names GBK(随控制台的关闭⽽⽽失效);来快速设置与客户端相关的编码集:⽽我们汉字应该为gbk。
如果要永久⽣效可以到MySQL安装路径(默认为:c://progames files/MySQL),到my.ini配置⽂件,在这个配置⽂件中 [mysql] 与客户端配置相关,[mysqld] 与服务器配置相关。它的默认配置为:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
可将default-character-set=utf8改为:default-character-set=gbk;重启MySQL 服务⼀劳永逸解决乱码问题。
从上图中可以看到 MySQL 有六处使⽤了字符集,分别为:client 、connection、database、results、server 、system。其中与服务器端相关:database、server、system(永远⽆法修改,就是utf-8);与客户端相关:connection、client、results 。
client              为客户端使⽤的字符集。
jquery mobile ui框架connection    为连接数据库的字符集设置类型,如果程序没有指明连接数据库使⽤的字符集类型则按照服务器端默认的字符集设置。
database        为数据库服务器中某个库使⽤的字符集设定,如果建库时没有指明,将使⽤服务器安装时指定的字符集设置。
results            为数据库给客户端返回时使⽤的字符集设定,如果没有指明,使⽤服务器默认的字符集。
server              为服务器安装时指定的默认字符集设定。
system            为数据库系统使⽤的字符集设定。
1.创建名为"db1606"的数据库,
2.创建表名为"course"的课程表,包含字段有:课程ID(id)、课程编号(number)、课程名称(course_name)、课程描述(course_discription)  课
时(course_time)
要求:课程ID、课程名称和课时不能为空,课程ID设为主键
3.向课程表中添加3门课程如下:
课程ID  课程编号(number)  课程名称(course_name) 课程描述(course_discription)  课时(course_time)
1          1001              java                  java服务端开发            189
2          1002              android                android⼿机开发          200
3          1003              ui                    ⽤户界⾯设计                  198
4. 1>查询课程表中所有课程按编号降序排列
2>查询课程表中课时在100到190之间的课程
3>查询课程名包含"roid"的课程
5.修改课程名为android的课程课时改为240,课程名改为IOS
6.删除课程描述包含"设计"的课程
解:1.create database db1606;
2.use db1606;
create table course(id int not null primary key,number int,course_name varcher(10) not null,course_discription varcher
(50),course_time int not null);
3.insert into course (id,number,course_name,course_discription,course_time) values (1,1001,'java',' java服务端开发',189);
insert into course (id,number,course_name,course_discription,course_time) values (2,1002,'andriod','android⼿机开发',200);
insert into course (id,number,course_name,course_discription,course_time) values (3,1003,'ui','⽤户界⾯',198);
4.select * from course order by id desc;
select * from course where course_time between 100 and 190;
select * from course where course_name like '%riod%';
5.update course set course_name = 'ios',course_time = 240,where id = 2;
6.delete from course where course_discription like '%设计%';
GRANT all privileges ON *.* TO 'test '@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql菜鸟教程增删改查注释:
all privileges:所有权限property finder
select detele update create drop等:其他权限
第⼀个*:表⽰所有数据库
第⼆个*:表⽰所有表
⼀、SQL语句
1.创建数据库mydb
create database mydb;
create database mydb default charset utf8;
2.创建课程表 course
create table course (
id int(11) not null auto_increment  pramery key(id),
course_name varchar(10) not null,
course_number int(10)  not null,
course_description varchar(255),django英文怎么读
course_time int(10) default 100
)
create table course (
id                  int(11)      not null  auto_increment  primary key,
course_name          varchar(10)  not null,
course_number        int(10)      not null  ,
course_description  varchar(255),
course_time          int(10)      default 100,
check (course_number > 100)
)
3.添加⼀个课程
insert into course (course_name,course_number,course_description)values
('java',1001,'java软件开发课程学习',100);
insert into course (course_name,course_number,course_description)values
('android',1002,'android软件开发课程学习'230);
insert into course (course_name,course_number,course_description)values
('ui',1003,'ui设计课程学习'150);
4.修改课时为200
update course set course_time = 200 where course_name = 'java';
5.查询课时在90到200之间的课程按id降序排序
java编程的基本方法
select * from course where course_time between 90 and 200 order by id desc;
6.查询课程描述中包含"开发"的所有课程
select * from course where course_description like '%开发%';
7.查询课程编号是1001和1003的课程
select * from course where course_number = 1001 or course_number=1003 or course_number = 1004;        select * from course as c urse_number in (1001,1003,1005,1004);
select * from course as c,student as s where c.number = 1001 or s.number = 2001;别名

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。