標籤:des 使用 java io ar for 檔案 資料 問題
*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: ‘\xD5\xC5\xC8\xFD‘ 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它是不受事務控制。也就是說,刪除後就不能在恢複。
MySql基礎-1