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;