03 MySQL数据库--查询数据准备

 整理MySQL数据库查询语句的相关使用笔记,首先准备查询数据,以下准备了四张表,表结构如下:

students(学生表) teacher(教师表) course(课程表) score(成绩表)
--学号
--姓名
--性别
--出生年月日
--班级编号
--教师编号
--教师名称
--教师性别
--出生年月日
--职称
--所在部门
--课程号
--课程名
--教师编号
--学号
--课程号
--成绩
create table students(
    sno varchar(20) primary key,
    sname varchar(20) not null,
    ssex varchar(10) not null,
    birthday datetime,
    class varchar(20)
) default character set = 'utf8';
create table teacher(
    tno varchar(20) primary key,
    tname varchar(20)not null,
    tsex varchar(10) not null,
    tbirthday datetime,
    prof varchar(20) not null,
    tdepar varchar(20)not null    
)default character set = 'utf8';
create table course(
    cno varchar(20) primary key,
    cname varchar(20)not null,
    tno varchar(20),
    foreign key(tno) references teacher(tno)
)default character set = 'utf8';
create table score(
    sno varchar(20) not null,
    cno varchar(20) not null,
    degree decimal,
    foreign key(sno) references students(sno),
    foreign key(cno) references course(cno),
    primary key(sno,cno)
    
)default character set = 'utf8';

首先,创建一个数据库,任意取名

mysql> create database chennuan;
Query OK, 1 row affected (0.00 sec)

切换数据库 

mysql> use chennuan;
Database changed

创建学生表:

create table students(
	sno varchar(20) primary key,
	sname varchar(20) not null,
	ssex varchar(10) not null,
	birthday datetime,
	class varchar(20)
) default character set = 'utf8';

 创建教师表

create table teacher(
	tno varchar(20) primary key,
	tname varchar(20)not null,
	tsex varchar(10) not null,
	tbirthday datetime,
	prof varchar(20) not null,
	tdepar varchar(20)not null	
)default character set = 'utf8';

创建课程表: 

create table course(
	cno varchar(20) primary key,
	cname varchar(20)not null,
	tno varchar(20),
	foreign key(tno) references teacher(tno)
)default character set = 'utf8';
Query OK, 0 rows affected (0.02 sec)

创建成绩表: 

create table score(
	sno varchar(20) not null,
	cno varchar(20) not null,
	degree decimal,
	foreign key(sno) references students(sno),
	foreign key(cno) references course(cno),
	primary key(sno,cno)
	
)default character set = 'utf8';

 查看创建的表

mysql> show tables;
+--------------------+
| Tables_in_chennuan |
+--------------------+
| course             |
| score              |
| students           |
| teacher            |
+--------------------+
4 rows in set (0.00 sec)

 添加学生表数据

insert into students values('101','张三','男','1977-09-01','95033');
insert into students values('102','李四','男','1975-10-02','95031');
insert into students values('103','王五','女','1976-01-23','95033');
insert into students values('104','铁柱','男','1976-02-20','95033');
insert into students values('105','小丽','女','1975-02-10','95031');
insert into students values('106','小红','男','1974-06-03','95031');
insert into students values('107','小绿','男','1976-02-20','95033');
insert into students values('108','大妞','女','1975-02-10','95031');
insert into students values('109','乖乖','男','1974-06-03','95031');

添加教师表数据:

insert into teacher values('804','李想','男','1958-06-03','副教授','计算机系');
insert into teacher values('856','张丹','男','1969-02-20','讲师','电子工程系');
insert into teacher values('825','王超','女','1970-02-10','助教','计算机系');
insert into teacher values('831','刘能','女','1961-06-03','助教','电子工程系');

 添加课程表数据:

insert into course values('3-105','计算机导论','825');
insert into course values('3-245','操作系统','804');
insert into course values('6-166','数字电路','856');
insert into course values('9-888','高等数学','831');

添加成绩表数据:

insert into score values('103','3-105','92');
insert into score values('103','3-245','86');
insert into score values('103','6-166','85');
insert into score values('105','3-105','88');
insert into score values('105','3-245','75');
insert into score values('105','6-166','79');
insert into score values('109','3-105','76');
insert into score values('109','3-245','68');
insert into score values('109','6-166','81');

FAQ

问题一:

mysql> insert into students values('1','zhang','男','1991-01-02','20');
ERROR 1366 (HY000): Incorrect string value: '\xE7\x94\xB7' for column 'ssex' at row 1

原因为,数据库没有设置字符集为utf8,修改方法参考该文档

//查询表的字符集
mysql> show create table students;
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                  |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (
  `sno` varchar(20) CHARACTER SET latin1 NOT NULL,
  `sname` varchar(20) CHARACTER SET latin1 NOT NULL,
  `ssex` varchar(10) CHARACTER SET latin1 NOT NULL,
  `birthday` datetime DEFAULT NULL,
  `class` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

//修改表字段字符集
alter table students change sno sno varchar(20) CHARACTER SET utf8 NOT NULL;

//查询数据库字符集
mysql> show variables like '%char%';
+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8                       |
| character_set_connection             | utf8                       |
| character_set_database               | latin1                     |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8                       |
| character_set_server                 | utf8                       |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+
9 rows in set (0.02 sec)


https://blog.csdn.net/qq_31683121/article/details/73371697

参考:

感谢code 158编程俱乐部

发布了13 篇原创文章 · 获赞 2 · 访问量 449

猜你喜欢

转载自blog.csdn.net/chennuan1991/article/details/105240457