1 练习:
2 查看当前的所有的数据库:
3
4 show databases;
5
6 创建一个名称为mydb1的数据库。 -------- sql 语句是不区分 大小写的
7
8 create database mydb1;
9
10
11 查看数据库的创建的具体的信息:
12 show create database mydb2;
13
14 创建一个使用utf8字符集的mydb2数据库。
15
16 create database mydb2 character set utf8;
17
18 创建一个使用utf8字符集,并带校对规则的mydb3数据库。
19
20 create database mydb3 character set utf8 collate utf8_general_ci;
21
22 这个校对是规则是干嘛的?
23
24
25 =================================
26
27 练习:
28 查看当前数据库服务器中的所有数据库
29 show databases;
30
31 查看前面创建的mydb2数据库的定义信息
32 show create database mydb2;
33
34 删除前面创建的mydb1数据库
35 drop database mydb1;
36
37 切换数据库:
38 use 数据库名称 --------- use mydb2;
39 select database();--------- 用于查看当前工作的数据库
40
41 练习
42 查看服务器中的数据库,并把其中mydb2个库的字符集修改为gbk;
43
44 alter database mydb2 character set gbk;
45
46 ====================================
47
48 mysql 数据库中的 常用到的数据类型 :
49
50 字符串型:
51 varchar(), char()
52 varchar(20), char(20)
53
54 大数据类型:
55 BLOB(二进制数据)、TEXT (文本)
56
57 数值型: java 中 ---- (bit, byte,short,int,long , float, double)
58
59 TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
60
61 逻辑性
62 BIT ----- 0 , 1 (boolean 中的false, true)
63
64 日期型: ---------- java 中 (Date)
65
66 date(只有日期), time(只有时间), datetime(既有日期,又有时间), timestamp(时间戳, 既有日期,又有时间)
67
68
69 注意: 大数据类型------ blob, text
70
71 =========创建表的 语法:
72
73 CREATE TABLE table_name
74 (
75 field1 datatype,
76 field2 datatype,
77 field3 datatype
78 )
79
80 id 整形
81 name 字符型
82 gender 字符型
83 birthday 日期型
84 entry_date 日期型
85 job 字符型
86 salary 小数型
87 resume 大文本型
88
89 create table employee(
90
91 id int,
92 name varchar(10),
93 gender varchar(10),
94 birthday date,
95 entry_date date,
96 job varchar(50),
97 salary double,
98 resume text
99 );
100
101 查看创建的表的语句:
102 show create table employee;
103
104 查看已经创建的表的结构:
105 desc employee;
106
107 ===================
108
109
110 表的字段约束 :
111 create table employee2(
112 -- 添加主键约束, 一般如果主键是 数值 类型, 那么可以自动增长 , 有可以添加 auto_increment
113 id int primary key auto_increment,
114 name varchar(10) unique,
115 gender varchar(10) not null,
116 birthday date,
117 entry_date date,
118 job varchar(50),
119 salary double,
120 resume text
121 );
122
123
124 主键 : 表示 非空,并且唯一 --------- primary key
125 唯一约束: 表示可以为空,但是不运行重复 -------- unique
126 非空约束: 表示不能为空. 可以重复 --------- not null
127
128 create table employee3(
129 -- 添加主键约束, 一般如果主键是 数值 类型, 那么可以自动增长 , 有可以添加 auto_increment
130 id int primary key auto_increment,
131 name varchar(10) unique,
132 gender varchar(10) not null,
133 birthday date,
134 entry_date date,
135 job varchar(50),
136 salary double,
137 resume text
138 );
139
140
141 注意: 表的字段的约束都是 为了保证 表中数据的有效性和 完整性.
142
143 ============== 修改表的语句 ------- 最复杂的
144
145 添加字段:
146 alter table 表名 add 列名 列类型 [,列名 列类型];
147
148 修改现有的列的数据类型:
149 alter table 表名 modify 列名 列类型;
150
151 删除现有的 某列:
152 alter table 表名 drop 列名;
153
154 修改表的名称:
155 rename table 原名 to 新表名;
156
157 修改列的名称:
158 alter table 表名 change 旧列名 新的列名 新的列名的类型;
159
160 =================
161 练习
162 在上面员工表的基本列上增加一个image列。
163 alter table employee3 add image varchar(60);
164
165 修改job列,使其长度为60。
166 alter table employee3 modify job varchar(60);
167
168 删除gender列。
169 alter table employee3 drop gender;
170
171 表名改为user。
172 rename table employee3 to user;
173
174 修改表的字符集为utf8
175 alter table user character set utf8;
176
177 列名name修改为username
178
179 alter table user change name username varchar(60);
180
181 注意 : 如上 讲 的 所有的sql 语句 都是 DDL (data definition language )语句
182
183 ==================================================
184
185 接下来 学习 DML (增删改) 语句, 然后学习 DQL(查询) 语句
186
187 一:增加语句
188
189 语法:
190 insert into 表名 ...;
191
192 三种
193 第一种: insert into 表名 (列名一,列名二, 列名三,...) values(列名一数据,列名二数据,列名三数据,... );
194 第二种: insert into 表名 (列名一, 列名五) values(列名一数据, 列名五数据);
195 第三种: insert into 表名 values(列名一数据,列名二数据,....);
196
197
198 语法一 :
199 insert into user (id,username,birthday,entry_date,job,salary,resume,image) values(null,'aaa','1990-09-09','2014-09-09','developer',12000,'a hansome boy','xxxx');
200
201 语法二:
202
203 insert into user (id,username,salary,resume) values(null,'bbb',13000,'a lady killer');
204
205 语法三:
206 insert into user values(null,'ccc','1995-09-09','2015-01-02','programmer',8000,'good student','kkkkk');
207
208 insert into user values(null,'小丽','1994-09-02','2014-09-08','programmer',9000,'a pretty girl','美女');
209 insert into user values(null,'小红','1994-09-02','2014-09-08','programmer',9000,'a pretty girl','小美女');
210 insert into user values(null,'红红','1994-09-02','2014-09-08','programmer',9000,'a pretty girl','红红小美女');
211 ERROR 1366 (HY000): Incorrect string value: '\xC0\xF6' for column 'username' at row 1
212
213 这是插入数据的时候的乱码问题?
214 mysql> show variables like 'character%';
215
216 +--------------------------+---------------------------------------------------------------+
217 | Variable_name | Value |
218 +--------------------------+---------------------------------------------------------------+
219 | character_set_client | utf8 |
220 | character_set_connection | utf8 |
221 | character_set_database | gbk |
222 | character_set_filesystem | binary |
223 | character_set_results | utf8 |
224 | character_set_server | utf8 |
225 | character_set_system | utf8 |
226 | character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |
227 +--------------------------+---------------------------------------------------------------+
228
229 如何解决: 两种方式
230
231
232
233 方式一: 临时的,只针对当前窗口有效 , 可以 解决
234 set names gbk;
235
236 | Variable_name | Value |
237 +--------------------------+---------------------------------------------------------------+
238 | character_set_client | gbk |
239 | character_set_connection | gbk |
240 | character_set_database | gbk |
241 | character_set_filesystem | binary |
242 | character_set_results | gbk |
243 | character_set_server | utf8 |
244 | character_set_system | utf8 |
245 | character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |
246
247 方式二 :一劳永逸的解决方式 --- 去更改mysql 的配置文件
248 到 安装 目录下去找 my.ini文件 的 57 行 更改为
249
250 default-character-set=gbk , 保存 ,重新启动 mysql 数据库 服务 就可以了
251
252
253
254 二: 修改语句 --- update
255
256 语法:
257 update 表名 set 列名=value值 [,列名二=value值二] [where从句];
258
259 要求
260 将所有员工薪水修改为5000元。
261 update user set salary=5000;
262
263 将姓名为’aaa’的员工薪水修改为3000元。
264
265 update user set salary=3000 where username='aaa';
266
267 将姓名为’bbb’的员工薪水修改为4000元,job改为 hr 。
268 update user set salary=4000,job='hr' where username='bbb';
269
270 将ccc的薪水在原有基础上增加1000元。
271 update user set salary=salary+1000 where username='ccc';
272
273
274 三: 删除语句 ----------- delete
275
276 语法:
277 delete from 表名 [where从句];
278
279 删除表中名称为’aaa’的记录。
280 delete from user where username='aaa';
281
282 删除表中所有记录。
283 delete from user;
284
285 使用truncate删除表中记录。
286 truncate 语句 也可以将数据表中的记录全部删除, 不过 其原理是 先将现有的表给摧毁,然后再重新创建这个表
287
288 truncate 语句 ------ 是 属于 DDL 语句,但是 delete 是语句 DML语句
289
290 truncate user;