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 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;
时间: 2024-08-06 03:40:37

mysql练习笔记的相关文章

MySQL学习笔记-基础入门

MySQL学习笔记

mysql数据库笔记

虽然select语句可以一次性查出所有的数据,但受计算机屏幕大小的限制,每次只能看到部分行的内容,要看其它内容的时候就要用到滚动条.由于网络的限制,对于web应用来说,这种方式的效率非常低下,数据量比较大的时候几乎是不能使用的. 事实上,通常采用的方法是根据屏幕的大小,一次只查出部分行并显示,如果要看其它的内容,通常采用分页的方式. 那如何在SQL语句中查部分行的内容呢?就要用到limit关键字了. kingbase中可以用下面的语句: 1.查询第一行记录:  select * from 表名

MySQL入门笔记(一)

MySQL入门笔记(二) 一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; ??上述代码中DATABASE和SCHEMA完全相同,可任选一个(花括号内的参数为任选其一): ??添加IF NOT EXISTS的作用则是,若新建数据库的名称与已有数据库名称冲突,则产

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

MySQL学习笔记-自定义函数

MySQL学习笔记-自定义函数 1.自定义函数简介 自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同 自定义函数的两个必要条件:(1)参数  (2)返回值 自定义函数: 创建自定义函数 CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body 关于函数体: 1.函数体可以由合法的SQL语句构成: 2.函数体可以是

Mysql学习笔记(三)对表数据的增删改查。

写在前面:(一些牢骚,可以直接跳到分割线后) 太过敏感的人不会快乐,不幸的是我正是这种性格的人. 从培训机构毕业后,迫于经济方面的压力,和当时的班里的一个同学住在了一起,我们在一个公司上班.谁知道这都是不开心生活的源头,从每天早晨开始心情就很糟糕.他是个脾气很慢的人,我是个急脾气,特别是在早上上班的时候.由此种种吧,实在是不胜枚举.算了,还是不说了,太痛苦了,我不太喜欢说别人的坏话.我是学心理学的,已经用各种方法去安慰自己,但是都不太奏效. 回想以往和朋友的交往中,我虽然不算十分合群的人,但绝对

mysql存储过程笔记

mysql  存储过程: 用变量做表名: 简单的用set或者declare语句定义变量,然后直接作为sql的表名是不行的,mysql会把变量名当作表名.在其他的sql数据库中也是如此,mysql的解决方法是将整条sql语句作为变量,其中穿插变量作为表名,然后用sp_executesql调用该语句. 这在mysql5.0之前是不行的,5.0之后引入了一个全新的语句,可以达到类似sp_executesql的功能(仅对procedure有效,function不支持动态查询),比如在用游标循环遍历多个表

mysql 个人笔记

mysql修改最后一条记录&删除第一条记录 收藏 //修改最后一条记录 UPDATE userinfo set userid='55' WHERE 1 ORDER BY userid DESC LIMIT 1 //删除第一条记录 delete from userinfo where 1 order by userid limit 1 mysql sql 修改表名 建立外键 修改列名 删除列 --重命名表 rename table t_softwareport to software_port;

mysql 学习笔记(一)

查询:show databases;show status;show tables; desc  table-name: 更改root密码:方法一:mysqladmin -uroot -poldpassword  password newpassword方法二:mysql -uroot -puse mysqlupdate user set password=password("newpasswd") where user="root";select host,use

MySQL学习笔记-数据类型与操作数据表

MySQL学习笔记-数据类型与操作数据表 数据类型:  1.字符型  2.整型  3.浮点型  4.日期时间型 数据表操作:  1.插入记录  2.查找记录 记录操作:  1.创建数据表  2.约束的使用 1.数据类型 [1]整型: 数据类型 存储范围 字节 TINYINT 有符号型:-128~127(-2^7~2^7 -1),无符号型0~255(0~2^8 -1) 1 SMALLINT 有符号型:-2^15~2^15 -1,无符号型0~2^16 -1 2 MEDIUMINT 有符号型:-2^2