mysql练习笔记

  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 TINYINTSMALLINTINTBIGINTFLOATDOUBLE
 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;

 

mysql练习笔记

上一篇:canal报错:c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status


下一篇:从零到一 | 如何搭建数据库自动化运维体系