mysql data types what are different data types mysql
Örneklerle Numeric, String, Date veri türü, JSON, Boolean vb. Gibi farklı MySQL Veri Türleri hakkında bilgi edinin:
Bu eğitimde, MySQL tarafından desteklenen farklı veri türleri hakkında bilgi edineceğiz. Veri türleri, bir tablo oluşturulduğunda ve ayrıca mevcut tabloya yeni bir sütun eklemek için tabloyu güncellerken / değiştirirken her bir sütuna göre belirlenir.
Üç farklı kategorideki veri türlerini, yani Sayısal veri türü, Dize veri türleri ve Tarih Saat veri türleri hakkında bilgi edineceğiz.
Ne öğreneceksin:
MySQL Veri Türleri
Ön Koşullar
MySQL'deki çalışma örnekleri ile tüm veri türlerini öğreneceğiz. Bu nedenle, kavramın daha iyi anlaşılması için ayrıntılarla birlikte sorguları yürütmek için MySQL'in kurulu olması önerilir.
Ayrıca, örnekler için kullanacağımız tüm tabloları içeren sql_data_types adında bir örnek veritabanı oluşturabilirsiniz.
create database sql_data_types; use sql_data_types;
Sayısal Veri Türleri
Sayısal Veri türleri 3 türe ayrılabilir:
- Tamsayı Veri Türleri
- Sabit Nokta Türleri
- Kayan Nokta Türleri
Şimdi bunların her birini tartışalım:
Tamsayı Veri Türleri
Bu veri türleri, herhangi bir ondalık gösterim olmaksızın tam sayıları destekler. INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT gibi çeşitli alt türleri vardır.
INT:
Sözdizimi:
INT((width)) (UNSIGNED) (ZEROFILL)
Gerçekler:
Açıklama | Aralık | Hafıza | Seçenekler |
---|---|---|---|
MEDIUMBLOB | 0-16.777.215 (16MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
En yaygın kullanılan sayısal tür. Tam sayıları depolar VARSAYILAN - İşaretsiz değerler | -2.147.483.648 ile 2.147.483.647 | 4 bayt | İmzalanmamış seçeneği ile kullanılırsa - Aralık, 0 ile 4.294.967.295 Genişlik seçeneği, genişlikten daha küçük değerler için girişleri sıfırla doldurmak için ZEROFILL ile kullanılabilir. |
Örnekler:
INT veri tipi ve farklı seçeneklere sahip 1 sütunlu bir tablo oluşturacağız.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
SELECT komutunun çıktısı:
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
Yukarıdaki komutun çıktısı:
INT'nin diğer varyasyonları:
Özel gereksinimlere bağlı olarak INT için birden fazla seçenek mevcuttur. Bunlar tipik olarak bellek veya alan önemli olduğunda kullanılır, ancak tüm pratik amaçlar için, INT en yaygın kullanılanıdır.
INT veri türünün mevcut olan farklı varyasyonları aşağıda listelenmiştir:
Veri tipi | Aralık | Misal | Kullanılan Bellek / Bayt |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | iki |
ORTA | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
BÜYÜK | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Kayan Nokta Türleri
Kayan Nokta Türleri yaklaşık değer türleridir ve bu sayıya bağlıdır. sütun türü bildirimi sırasında belirtilen ondalık nokta duyarlılığı.
2 tür kayan nokta veri türü vardır: Farklı aralıkları destekleyen ve bellek / depolama kullanan FLOAT ve DOUBLE.
FLOAT & DOUBLE
Yeni önerilen sözdizimine göre - FLOAT ve DOUBLE kesinliği yalnızca FLOAT veri türleri kullanılarak belirtilebilir.
Sözdizimi:
FLOAT(p)
Buraya, p -> hassas
Gerçekler:
Açıklama | Hafıza | Seçenekler | Örnekler |
---|---|---|---|
FLOAT / DOUBLE yaklaşık değerlerle kayan nokta sayılarını temsil eder Yani MySQL bu değerleri sakladığında, bu değerler, belirtilen türe göre en yakın hassasiyete yaklaştırılır. 0-23 arasındaki hassasiyet FLOAT türünü temsil ederken, 24 ila 53, 8 bayt tüketen bir çift tür üretir | -Hassas - 0-23 => 4 bayt -Hassas-24-53 => 8 bayt | -Yüzen nokta numaraları İMZALANABİLİR ve İMZASIZ -FLOAT genellikle 7 ondalık basamağa kadar, DOUBLE ise 14 ondalık basamağa kadar doğrudur - Hassas noktaların spesifikasyonu ile FLOAT ve DOUBLE bildirmenin standart olmayan başka bir yolu da vardır. FLOAT (n, d) - burada n toplam rakamdır ve d ondalık nokta değildir | - Sütun DOUBLE veri türü ile tablo oluşturun CREATE TABLE numbers_double (double_col FLOAT (30)); -Sütun DOUBLE veri tipi ve 5 kesinlik rakamları ile tablo oluşturun CREATE TABLE numbers_double (double_col DOUBLE (20,5)); |
İkili türlerin değerlerini almaya ilişkin bazı örnekler görelim:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
SELECT ifadesinin çıktısı:
Burada, veri türü bildirimi sırasında belirtilen değerlerin 5 ondalık basamağa kadar saklandığını görebiliriz.
Sabit Nokta Türleri
Bu veri türleri, kesin bir değeri belirli bir hassasiyetle depolamak için kullanılır. Bu veri türleri genellikle tam hassas depolama gerektiğinde kullanılır. Örneğin, banka hesapları bakiyeleri 2 ondalık basamakla korumak bir gerekliliktir, verilerin tam hassasiyetle depolanması gerekir.
ONDALIKLI / SAYISAL
Sözdizimi:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Gerçekler:
Açıklama | Aralık | Hafıza | Seçenekler |
---|---|---|---|
DECIMAL, MySQL'deki sayısal bir veri türüdür ve kesin değerleri belirtilen hassasiyetle depolar. DECIMAL veri türü için varsayılan ölçek veya genişlik 10 ve 0 duyarlılıktır. Lütfen DECIMAL ve NUMERIC türlerinin birbirlerinin yerine kullanılabileceğini unutmayın. | Belirtilen aralığa bağlıdır Örneğin DECIMAL (5,2), -999,99 ila 999,99 aralığında olur | MySQL kullanıcıları DECIMAL veri türünü depolamak için ikili biçim - Her 9 basamak için dört bayt gerektirir - Yani Örneğin, DECIMAL (14,2) 'e sahipsek - toplam - 9 (4) + 2 (1) => 7 bayt gerektirir | Maksimum genişlik değeri 265 olabilir -Ondalık sayısı isteğe bağlıdır ve varsayılan değer 0'dır |
Misal:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
DateTime Veri Türleri
Adından da anlaşılacağı gibi MySQL'deki DateTime veri türleri, MySQL veritabanında tarih ve saat değerlerini depolamak için kullanılır.
MySQL tarafından desteklenen 2 zamansal tür vardır - DATETIME ve TIMESTAMP
Her ikisini de aşağıdaki bölümlerde tartışalım.
DATETIME
Sözdizimi:
DATETIME(n)
Burada, saniye bölümünün n -> hassas / kesirli kısmı (Desteklenen maksimum hassasiyet 6'dır).
Gerçekler:
Açıklama | Aralık | Hafıza | Örnekler |
---|---|---|---|
Tarih ve saati MySQL sütununda saklamak için kullanılır Sorgulandığında, sütun verileri tarih saati aşağıdaki biçimde gösterir: YYYY-AA-GG SS: DD: SS | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 bayt Kesirli bir bölüm eklendiğinde, her 2 kesirli basamak için fazladan bir bayt tüketilir. | CREATE table datetime_example(date_col DATETIME); // ÇIKTI tarih_kol 2020-08-08 22:22:53 |
TIMESTAMP
Sözdizimi:
TIMESTAMP(n)
Burada, saniye bölümünün n -> hassas / kesirli kısmı (Desteklenen maksimum hassasiyet 6'dır)
Gerçekler:
Açıklama | Aralık | Hafıza | Örnekler |
---|---|---|---|
Tarih saatini depolamak için kullanılan başka bir geçici veri türü. Bu, tarih saatini UTC olarak da 1970 ile 2038 arasında sınırlı bir aralıkla depolar | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 bayt | CREATE table timestamp_example(ts_col TIMESTAMP); ÇIKTI ts_col 2020-08-08 22:19:11 |
Dize Veri Türleri
Dize veri türleri, adından da anlaşılacağı gibi, veri tabanında metin bilgisi dizilerini / metinlerini veya bloblarını depolamak için kullanılır. Kullanım durumuna bağlı olarak bu tür farklı veri türleri mevcuttur -CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Bu farklı veri türlerinin her birini örneklerle anlayalım.
CHAR ve VARCHAR
Her iki tür de MySQL'deki sütunlarda String değerlerini saklamak için kullanılır, ancak değerlerin nasıl saklandığı ve alındığı konusunda farklılık gösterirler.
CHAR & VARCHAR, sütunda depolamak istediğiniz Dize'nin maksimum uzunluğunu belirten uzunlukla bildirilir.
Sözdizimi:
CHAR(n) VARCHAR(n)
Burada n -> max no. sütun tarafından saklanacak karakter sayısı
Gerçekler:
Tür | Açıklama | Aralık | Örnekler |
---|---|---|---|
CHAR Sözdizimi - CHAR (n) | CHAR, bildirim sırasında tanımlanan 'n' uzunlukta dizeyi saklayabilir. Dize n karakterden küçükse boşluklarla doldurulur. | CHAR veri türünün uzunluğu 0-255 arasında değişebilir Uzunluğa bağlı olarak, bellek tüketimi 0 - 255 bayt arasında değişecektir. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Sözdizimi - VARCHAR (n) | VARCHAR, değişken uzunluklu Dizeleri depolamanıza ve sütun tanımı sırasında belirtilen maksimum değer yerine depolanan gerçek Dize boyutuna göre bellek tüketmenize olanak tanır. | VARCHAR veri türünün uzunluğu 0 - 65535 arasında değişebilir Uzunluğa bağlı olarak, bellek tüketimi 0 - 65535 bayt arasında değişir. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
İKİLİ ve ÇEŞİTLİ
CHAR ve VARCHAR'a benzer - bu veri türleri Dizeleri depolar ancak İkili formatta.
BINARY ve VARBINARY veri türlerinin uzunluğu, CHAR ve VARCHAR veri türlerindeki karakter sayısının aksine bayt cinsinden ölçülür.
Sözdizimi:
BINARY(n) VARBINARY(n)
Burada n -> max no. sütun tarafından saklanacak bayt sayısı.
Gerçekler:
Tür | Açıklama | Aralık | Örnekler |
---|---|---|---|
İKİLİ Sözdizimi - BINARY (n) | BINARY, 'n' ikili bayt depolayabilir. N'den küçük değerler için, 0 bayt ile sağda doldurulur ve saklanır | BINARY veri türünün uzunluğu 0-255 arasında değişebilir Uzunluğa bağlı olarak, bellek tüketimi 0 - 255 bayt arasında değişecektir. | CREATE TABLE binary_string(binary_col BINARY(50)); |
DEĞİŞKEN Sözdizimi - VARBINARY (n) | VARBINARY, ‘n uzunluğa kadar (sütun tanımında belirtildiği gibi) değişken uzunluklu ikili Dizeleri depolamanıza olanak tanır | VARBINARY veri türünün uzunluğu 0 - 65535 arasında değişebilir Uzunluğa bağlı olarak, bellek tüketimi 0 - 65535 bayt arasında değişir. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
İKİLİ veri türünü daha ayrıntılı olarak anlayalım. İkili ve varbinary veri türlerinin her birinde bir sütun içeren bir tablo oluşturacağız ve içeriğini inceleyeceğiz.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Şimdi çıktıyı BLOB olarak gördük, yani - B inary L kötü OB ject - ve bunlar sütunlara eklediğimiz String değerlerinin Binary / Hex temsilinden başka bir şey değil.
Şimdi bu ikili dizelerin değerlerini inceleyip nasıl depolandıklarını göreceğiz.
İlk olarak, BINARY veri türündeki 'binary_col' da bulunan değeri görelim.
Depolanan değerlerin neler olduğunu anlayalım - Değerleri ilk 5 girişe göre fark ederseniz - yani ilk satır ve ilk 5 sütun (0-4)
Bunlar, sakladığımız 'merhaba' dizesinin karakterleri için yalnızca HEX temsilleridir.
Şimdi, BINARY veri türü 50 uzunluğunda olduğundan, baytların geri kalanının '0' basamağı için bayt gösteriminden başka bir şey olmayan '00' değerleriyle doldurulduğunu görebiliriz.
VARBINARY veri türündeki 'varbinary_col' da bulunan değere bakın.
Burada, VARBINARY için, değerlerin sadece sakladığımız String uzunluğuna eşit olan 5 uzunluğunda doldurulduğunu görebilirsiniz. 50 uzunluğunda bir VARBINARY sütun bildirmemize rağmen Sıfır dolgusu yok.
BLOB ve METİN
BLOB ve TEXT veri türleri, temel muadillerine göre daha büyük boyutları destekleyebilme ayrımı ile BINARY ve CHAR veri türlerine benzer.
BLOB'un verileri İkili Dizeler olarak, TEXT veri türünün ise ikili olmayan Dizeler olarak sakladığına dikkat etmek önemlidir. Ayrıca, tüm bu veri türleri, veri türü belirtilirken uzunluğun belirtilmesini gerektirmez. Doğaları gereği Değişken uzunluktadırlar ve yalnızca gerçek sütun değeri olarak depolananlara karşı bellek tüketirler.
BLOB veri türleri genellikle görüntüler, pdf belgeleri vb. Dosyaları ikili dizeler olarak güvenli ve verimli bir şekilde depolamak için kullanılır.
BLOB ve TEXT veri türlerinin farklı varyantları hakkındaki ayrıntılar aşağıda listelenmiştir:
Tür | Aralık | Açıklama | Örnekler |
---|---|---|---|
TINYTEXT | 0-255 (255 Bayt) | Aralık, VARCHAR ile aynıdır - Başlıklar, yazar adları vb. Gibi küçük bilgileri depolamak için kullanılır. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
METİN | 0-65535 (64KB) | Bu veri türü, küçük ila orta boyutlu bir makale için metin depolamak için yeterlidir. | CREATE TABLE text_example(text_col TEXT); |
ORTA METİN | 0-16.777.215 (16MB) | Bu veri türü, bir ders kitabının tamamı için metin depolamak için yeterli olabilir. | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
UZUN METİN | 0 - 4.294.967.295 (4 GB) | LONGTEXT, özellikle MEDIUMTEXT'in yeterli olmadığı durumlarda nadiren kullanılır. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 Bayt) | Tüm BLOB veri türleri, İkili Dizeleri depolamak için kullanılır ve genellikle görüntüler, pdf belgeleri veya küçük uygulamaların kendisi gibi dosyaları depolamak için tercih edilir. Boyut gereksinimlerine bağlı olarak, farklı BLOB veri türleri seçilebilir ve kullanılabilir. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 0-65535 (64KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4.294.967.295 (4 GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
SIRALAMA
ENUM, bir sütunun sahip olabileceği izin verilen değerleri önceden tanımlayan bir Dize veri türüdür. JAVA, C # vb. Gibi farklı programlama dillerinde bulunan ENUM veri türlerine benzer.
ENUM değerleri, depolandığında her sütun değerine karşı sayılara dönüştürülür ve bu da çok sayıda kayıt içermeyen tablolar için önemli bir bellek tasarrufu ile sonuçlanır, yani değer1, değer2 ve değer3 değerlerine sahip bir ENUM'a sahip olduğumuzu varsayalım, o zaman gerçek bellek depolaması sayısal olacaktır perde arkasında 1,2,3 indeksler.
Sözdizimi:
ENUM({comma separated enum values})
Örnek Sorgular:
Mobil modelleri String olarak ve şirket adlarını değerlere sahip ENUM veri türleri olarak depolamak için 2 sütunlu bir tablo oluşturun - APPLE, SAMSUNG ve NOKIA. Belirli bir ENUM değerine göre veri getirmeye yönelik sorguları da görelim.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
Yukarıdaki sorguda hem Enum isimlerini hem de sayısal indeksleri yerleştirme sırasında kullandığımızı görebilirsiniz.
Şimdi, 'SAMSUNG' markalı tüm mobil cihazları sorgulamanın yanı sıra, SAMSUNG'un '1' olan sayısal endeksine göre sorgulamayı deneyelim.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
Yukarıdaki sorguların her ikisinin de çıktısı aşağıda belirtildiği gibi aynı olacaktır:
AYARLAMAK
MySQL SET veri türü, sütun tanımı sırasında açıklandığı gibi izin verilen bir aralıktan bir veya daha fazla değere sahip olabilen bir String nesnesidir. ENUM'a benzer, ancak tanımlanan listedeki birden çok değerin sütun değerleri olarak ilişkilendirilmesine izin verir.
Ayrıca, SET veri türleri 2 ^ 0 ile başlayan Sayı Dizinleri olarak depolanır - yani 1,2,4,8 vb.
Sözdizimi:
SET({comma separated list of allowed values})
Misal:
SET veri türünü örneklerle anlamayı deneyelim. Dize türünde bir sütun modeliyle mobile_details adında bir tablo ve set veri türü olan ve desteklenen işletim sistemi sürümlerinin bir listesini içeren supported OS adlı bir sütun oluşturacağız.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
SET veri tipine sahip bir sütunun parçası olarak işletim sistemi değerlerini listelediğimizi görebiliriz. Bunlara atanan karşılık gelen DECIMAL değerleri aşağıda listelenmiştir:
Şimdi, SET değeri atamak istersek, Örneğin, Bir satıra 'android8, android9', atanan ondalık değerlerin toplamasını atayabiliriz, yani aynı etkiye sahip olmak için 12.
Model adı 'GALAXYM1' olan satıra atama için lütfen yukarıdaki INSERT sorgusuna bakın
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Yukarıdaki komutun çıktısı:
SET sütununu ondalık gösterimine göre de sorgulayabiliriz - 'ios9, ios10' için sorgulamak istediğimizi varsayalım - ondalık gösterimin toplamı 3'tür, böylece şu şekilde sorgulayabiliriz:
SELECT * from mobile_details where supported_os=3
Çıktı:
Özel Veri Türleri
BOOLE
MySQL Boolean veri türü, bir sütun değerini DOĞRU veya YANLIŞ olarak depolar. Bu veri türü genellikle MySQL tablolarında bayrak değerlerini depolamak için uygundur. Örneğin - İs_savings_account adlı bir sütuna sahip bir Banka Hesabı tablosu, doğru veya yanlışı depolayabilir.
BOOLEAN değeri MySQL'de TRUE ve FALSE için sırasıyla 1 veya 0 olarak saklanır.
Sözdizimi:
columnName BOOLEAN
Misal:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
BOOLEAN veri türü için değerler eklerken veya alırken TRUE veya FALSE veya bunların sayısal temsillerini kullanabiliriz - yani 1 veya 0.
select * from account_details where is_savings=1;
Yukarıdaki komutun çıktısı:
JSON
MySQL, JSON gösterimindeki nesneler için bir veri türü olarak yerel JSON'u destekler. Metin dizeleri veya ikili Bloblar olarak depolamak yerine JSON türü belgeler için depolamayı, sorgulamayı ve almayı kolaylaştırır.
Sözdizimi:
columnName JSON
Gerçekler:
Tanım | Aralık | Örnekler |
---|---|---|
JSON veri türü, JSON biçimindeki belgeleri depolamak için kullanılır. JSON olarak tanımlanan herhangi bir sütun, geçersiz bir JSON bir INSERT sorgusu tarafından saklanırsa hata verir. | JSON veri türünün aralığı veya boyutu LONGTEXT veya LONGBLOB'a benzer | CREATE TABLE json_example(json_col JSON); |
Misal:
MySQL, JSON verilerini sorgulamak için farklı işlevler sağlar. JSON'un altına eklemeyi deneyelim ve ardından sorgulamak için MySQL işlevlerini göreceğiz.
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
Tablo oluşturmak ve JSON verilerini eklemek için komutları görelim.
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
Tabloyu sorgulayın ve tablo satırlarında depolanan JSON verilerinden ad ve e-posta alanlarını yazdırın.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Çıktı:
Sıkça Sorulan Sorular
S # 1) Bir MySQL sütununun veri türünü atandıktan sonra nasıl değiştirebiliriz?
Cevap: Sütunun veri türü kullanılarak değiştirilebilir ALTER TABLE Komutu .
Sırasıyla VARCHAR ve INT türlerinde 2 sütun adı ve yaşı olan bir student_info tablosu düşünün. Bu, aşağıdaki CREATE TABLE komutu kullanılarak gerçekleştirilebilir:
CREATE TABLE student_info(name CHAR(20), age INT);
Bu komutta birkaç varyasyon var
yardım masası desteği mülakat soruları ve cevapları
- Yalnızca sütunun veri türünü değiştirmek istersek - ALTER ile birlikte MODIFY komutunu kullanabiliriz
Yukarıdaki tabloda yaş sütununun veri türünü değiştirmek istediğimizi varsayalım aşağıdaki komutu kullanabiliriz
ALTER TABLE student_info MODIFY age TINYINT
- Sütun adını ve sütunun veri türünü değiştirmek istiyorsak - ALTER ile birlikte CHANGE komutunu kullanabiliriz
Yukarıdaki tabloda sütun adını 'ad' dan 'sname' ve veri türünü CHAR'dan VARCHAR (50) olarak değiştirmek istediğimizi varsayalım, aşağıdaki komutu kullanabiliriz:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
S # 2) mysql'deki bir görüntünün veri türü nedir?
Cevap: MySQL'de resimler, pdf vb. Gibi dosya türlerinden herhangi birini depolamak için BLOB veya ikili veri türü en uygun türdür. Saklamak istediğimiz hedef dosyanın boyutuna bağlı olarak BLOB veri türünün farklı varyantları mevcuttur. TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB gibi BLOB çeşitlerini kullanabiliriz
S # 3) Belgeleri mysql'de saklamak için hangi veri türü daha uygundur?
Cevap: Görüntüler veya pdf dosyaları için BLOB'a benzer şekilde, metin belgelerini / makaleleri depolamak için TEXT veri türü kullanılabilir. Bu, ekstra karakter depolama desteğine sahip CHAR veri türünün bir uzantısıdır.
Mevcut olan TEXT veri türünün farklı varyantları - METİN, KÜÇÜK METİN, ORTA METİN ve UZUN METİN
S # 4) MySQL'de para birimi için veri türü nedir?
Cevap: Para birimi değerleri için veri depolamak için en uygun veri türü DECIMAL'dir. Veri türlerini tam hassasiyetle depolamak için kullanılır. Örneğin, DECIMAL (4,2) türündeki bir sütun adı, değerleri -99,99 ila 99,99 aralığında saklar ve değeri alma işleminde farklı olarak aynı hassasiyetle döndürür. Kayan nokta sayıları için yaklaşım.
S # 5) Birisi işaretlenmemiş tamsayı sütunları için negatif sayılar eklemeye çalışırsa ne olur?
Cevap: MySQL, bu tür ekleme ifadeleri için bir hata oluşturur
İmzalanmamış seçeneği olan bir INT sütununa sahip bir tablo oluşturmayı deneyelim.
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
S # 6) mysql'de güncel tarih verileri nasıl alınır?
Cevap: MySQL, mevcut değerleri almak için 2 yerleşik tarih ve saat işlevi sağlar
CURDATE () işlevi geçerli tarihi döndürür
SELECT CURDATE();
Çıktı
2020-08-10
NOW () işlevi, zaman damgasıyla birlikte geçerli tarihi döndürür.
SELECT NOW();
Çıktı
2020-08-10 00:42:54
S # 7) CHAR ve VARCHAR Dışı - hangisi daha uygun?
Cevap: VARCHAR, değişken karakter anlamına gelir ve aynı uzunluktaki CHAR'a kıyasla daha az bellek tüketmenin önemli bir avantajına sahiptir. Örneğin, VARCHAR (50) içeren bir sütun, 20 uzunluğundaki dizeleri saklarsa, CHAR (50) ile bildirilen bir veri türünün aksine yalnızca 20 bayt tüketilmesine neden olur.
S # 8) MySQL'de ENUM değeri nasıl güncellenir?
Cevap: MySQL'de bir ENUM sütununu güncellemek için, mevcut sütun değerlerinden bahsetmeyi değiştirmeniz gerekir, böylece mevcut girişler bozulmadan kalır.
Bunu bir örnekle anlamaya çalışalım.
String (VARCHAR) olarak bir model alanı ve 'APPLE', SAMSUNG 've' NOKIA 'gibi başlangıç değerlerine sahip ENUM olarak marka sütunu olan mobile_details adlı bir tablomuz olduğunu varsayalım.
Şimdi, mevcut numaralandırmaya başka bir marka adı 'MOTOROLA' eklemek istediğimizi varsayalım. Şimdi yürütmemiz gereken sorguları görelim.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Oluşturulduktan sonra, DESCRIBE komutunu kullanarak orijinal ENUM değerlerinin ayrıntılarını alabilirsiniz.
DESCRIBE mobile_details;
Şimdi ENUM'u güncelleme komutunu çalıştıralım
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Güncellemelerin başarıyla uygulanıp uygulanmadığını görmek için DESCRIBE komutunu tekrar çalıştırabiliriz.
DESCRIBE mobile_details
İşte yukarıdaki komutun çıktısı:
Sonuç
Bu eğitimde MySQL tarafından desteklenen farklı veri türleri hakkında bilgi edindik.
Sözdizimi ve farklı örneklerle birlikte Sayısal, Kayan, Dize ve Tarih saat veri türleri hakkında bilgi edindik.
MySQL veri türleri, başlamak için temel yapı taşlarıdır ve MySQL Şema Tasarımının en önemli yönlerinden biridir.
Önerilen Kaynaklar
- C ++ Veri Türleri
- Python Veri Türleri
- C # Veri Türleri ve Örneklerle Değişkenler
- PL SQL Veri Türleri, Değişkenler, Sabitler ve Değişmezler
- Dizi Veri Türleri - int Array, Double array, Array of String vb.
- MySQL Silme İfadesi - Komut Sözdizimini ve Örnekleri Sil
- MySQL Tabloya Ekle - İfade Sözdizimi ve Örnekler Ekle
- MySQL JOIN Eğitimi: İç, Dış, Çapraz, Sol, Sağ ve Öz