MySql基础-1

*sql of databse

 

1.create databse

create database mydb1;

   create database mydb2 character set utf8;

   create database mydb3 character set utf8 collate

   create database 数据库名;

   create database 数据库名 character set 编码;

   create database 数据库名 character set 编码 COLLATE 校验集;

 

2.show databses;

  show databases;

  select database(); 查看当前数据库

 

3.显示数据库的创建语句

  show create database 数据库名

 

4.delete database   

  drop database 数据库名;

 

5.update database

   alter database 数据库名 character set 字符编码集 collate 校验集;  

   use 数据库名;  切换数据库

 

 

*sql for the table 

 

1.create 

  create table 表名(

    字段1 字段类型,

    字段2 字段类型,

    ....

    字段n 字段类型

  );

ex:

create table employee(

id int primary key auto_increment,

name varchar(20) not null,

gender varchar(10) unique,

birthday date,

entry_date date,

job varchar(100),

salary double,

resume longtext

);

 

2.show the table

desc tablename;

 

3.删除表

drop table 表名;

 

4.修改表

alter table 表名

1.add 添加一个新的列.

alter table users add password varchar(20);

2.modify 修改列

alter table users modify password int;

3.drop 删除列

alter table users drop password;

4.change 修改列名

alter table users change password pwd varchar(10);

5.insert

insert into 表名(字段1,字段2,...) values(值1,值2,....);

5.update data

update 表名 set 字段=值,字段1=值.

按条件进行修改

update 表名 set 字段=值,字段1=值,..... where 条件;

6.delete data

delete from 表名;---所有数据全都删除

delete from 表名 where 条件.

 

*datatype for the mysql

 

***mysql中的表的字段类型有n多种

 

java中的数据类型 mysql数据类型

byte SMALLINT

short MEDIUMINT

int int

long bigint

float float

double double

boolean bit

 

String char varchar

 

java.sql.Date Date DateTime

java.sql.Time Time

java.sql.TimeStamp TimeStamp

 

 

***在数据库中字符与字符串是同样的概念。 varchar char

char与varchar区别?

char定长的.

varchar是不定长的.

 

***关于数据库中的日期类型与java中的日期类型处理问题:

在java---》 java.util.Date类型。

而在数据库中有一个Date类型 。它与java中的 java.sql.Date对应.

 

 

***在java中对于数据库对应的还有其它几种类型.

java.sql.Date--------Date DateTime

java.sql.Time--------Time

java.sql.TimeStamp---TimeStamp

 

***大数据类型

blob----大二进制类型. -------InputStream对应.

text----大文本类型 -------Reader对应

 

tinyblob tinytext 255字节 

blob text 64KB 

mediumblob mediumtext 16MB 

longblob longtext 4GB

 

***关于mysql中的小数类型

float

double

NUMERIC(5,2)

 

 

 

3.关于表的约束

 

约束的是什么?它的作用?

对字段进行约束就是强制对字段的特性进行控制。

添加约束可以提高我们的数据的完整性与安全性。

 

1.主键约束

我们可以让某一个字段是主键,如果这个字段是主键后,它具有两个特性.

1.唯一性

2.非空

 

怎样添加主键?

在字段上添加上 primary key就可以。

在开发中一般对于主键来说,它不具有任何意义,只是用来做标识。

对于主键,它是唯一不可重复,在mysql中可以通过 auto_increment来让int类型的字段进行自动增长.

 

sqlservet--------identity(1,1)

oracle------------使用它sequence

 

2.非空约束

not null

 

3.唯一约束

unique

4.外键约束(多表)

 

 

***插入数据时的注意事项:

1.数据需要使用引号引起来.数例类型可以不用.

2.如果插入空值,使用null.

3.插入的数据必须与字段的类型匹配.

4.指定的列数与数值要对应.

5.插入的数据长度不能超出列的指定长度.

***关于插入时的中文问题:

insert into users values(null,'张三','1999-10-10');

ERROR 1366 (HY000): Incorrect string value: 'xD5xC5xC8xFD' for column 'username' at row 1

 

在插入中文时报错.

原因:我们当前使用的cmd窗口它是一个客户端,在这个客户端中所使用的是编码是当前系统默认的编码。

mysql数据库服务器在安装时,我们指定了编码 utf8,那么它的客户端与服务器端都是utf8编码。

解决方案:

mysql的安装文件下查找一个人my.ini文件.

修改my.ini文件事重新启动服务.

临时修改

mysql中一共有6个地方使用了字符集.

client connetion result 和客户端相关 、database server system 和服务器端相关 

查看系统所有字符集 : show variables like 'character%';

可以通过 -->set names gbk ;

 

***sql的关于删除数据:

drop table 表名-------它用于删除表结构.

delete from 表名 ------它用于删除表中的数据,表还存在.

truncate 表名.---------它与delete一样,都是用于删除表中数据。

 

delete与truncate的区别?

1.

delete删除时,是一条一条删除。它效率比较低.

truncate删除是先将表结构删除,在重新创建表结构.

 

2.

delete 是dml语句.

truncate不是dml语句.

 

对于dml语句它是可以受事务控制。在事务中,我们通过delete删除后数据可以恢复.

truncate它是不受事务控制。也就是说,删除后就不能在恢复。

原文地址:https://www.cnblogs.com/skyzcx520/p/3942327.html